|
| 1 | +`std::result_of` was removed in C++20, but is still used in the Swift headers. We can't |
| 2 | +remove it from there before prebuilding, as that is still done with C++14, but we can |
| 3 | +replace it with `std::invoke_result` for compiling the extractor. |
| 4 | + |
| 5 | +diff --git a/include/swift/Basic/RelativePointer.h b/include/swift/Basic/RelativePointer.h |
| 6 | +index 73f91262afa..bdaa304c804 100644 |
| 7 | +--- a/include/swift/Basic/RelativePointer.h |
| 8 | ++++ b/include/swift/Basic/RelativePointer.h |
| 9 | +@@ -551,7 +551,7 @@ public: |
| 10 | + } |
| 11 | + |
| 12 | + template <typename... ArgTy> |
| 13 | +- typename std::result_of<T *(ArgTy...)>::type operator()(ArgTy... arg) const { |
| 14 | ++ typename std::invoke_result<T*, ArgTy...>::type operator()(ArgTy... arg) const { |
| 15 | + #if SWIFT_PTRAUTH |
| 16 | + void *ptr = this->super::getWithoutCast(); |
| 17 | + return reinterpret_cast<T *>(ptrauth_sign_unauthenticated( |
| 18 | +diff --git a/include/swift/Basic/STLExtras.h b/include/swift/Basic/STLExtras.h |
| 19 | +index 7fa3d0c8890..6bc891a9b63 100644 |
| 20 | +--- a/include/swift/Basic/STLExtras.h |
| 21 | ++++ b/include/swift/Basic/STLExtras.h |
| 22 | +@@ -405,7 +405,7 @@ class OptionalTransformIterator { |
| 23 | + typename std::iterator_traits<Iterator>::reference; |
| 24 | + |
| 25 | + using ResultReference = |
| 26 | +- typename std::result_of<OptionalTransform(UnderlyingReference)>::type; |
| 27 | ++ typename std::invoke_result<OptionalTransform, UnderlyingReference>::type; |
| 28 | + |
| 29 | + public: |
| 30 | + /// Used to indicate when the current iterator has already been |
0 commit comments