diff options
author | Ryan Prichard <rprichard@google.com> | 2022-08-31 23:36:09 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-08-31 23:36:09 +0000 |
commit | c04f8f956d8a47c89f758717f0e0e5f4f1777924 (patch) | |
tree | 7c19dbf0509f14fdabc9ff45228b7c39c667a691 | |
parent | 463426410dccca2ed8e2d8e7ae88bdcf4ba915ea (diff) | |
parent | 07ef32e13a536510cbbb6090cfbe15f49a91b0f2 (diff) | |
download | llvm-c04f8f956d8a47c89f758717f0e0e5f4f1777924.tar.gz |
Merge "Remove use of std::unary_function and std::binary_function" am: 07ef32e13a
Original change: https://android-review.googlesource.com/c/platform/external/llvm/+/2202076
Change-Id: I766e3b4adc1c1cf668ca3b0e2893ef413d2c3080
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | include/llvm/ADT/STLExtras.h | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/include/llvm/ADT/STLExtras.h b/include/llvm/ADT/STLExtras.h index abd39dacc671..a032efa5cee2 100644 --- a/include/llvm/ADT/STLExtras.h +++ b/include/llvm/ADT/STLExtras.h @@ -36,7 +36,11 @@ namespace llvm { //===----------------------------------------------------------------------===// template<class Ty> -struct identity : public std::unary_function<Ty, Ty> { +struct identity { + // Android: In upstream LLVM, identity used to inherit from + // std::unary_function<Ty, Ty>, so use Ty here instead of Ty&. + using argument_type = Ty; + using result_type = Ty; Ty &operator()(Ty &self) const { return self; } @@ -46,14 +50,24 @@ struct identity : public std::unary_function<Ty, Ty> { }; template<class Ty> -struct less_ptr : public std::binary_function<Ty, Ty, bool> { +struct less_ptr { + // Android: In upstream LLVM, less_ptr used to inherit from + // std::binary_function<Ty, Ty, bool>, so use Ty here instead of const Ty*. + using first_argument_type = Ty; + using second_argument_type = Ty; + using result_type = bool; bool operator()(const Ty* left, const Ty* right) const { return *left < *right; } }; template<class Ty> -struct greater_ptr : public std::binary_function<Ty, Ty, bool> { +struct greater_ptr { + // Android: In upstream LLVM, greater_ptr used to inherit from + // std::binary_function<Ty, Ty, bool>, so use Ty here instead of const Ty*. + using first_argument_type = Ty; + using second_argument_type = Ty; + using result_type = bool; bool operator()(const Ty* left, const Ty* right) const { return *right < *left; } |