forked from OSchip/llvm-project
[ORC-RT] Add a std::identity substitute.
The __orc_rt::identity utility is intended to serve as a substitute for c++20's std::identity until we can use the latter (when LLVM moves to c++20).
This commit is contained in:
parent
134986a720
commit
faabefe3c8
|
@ -41,6 +41,16 @@ decltype(auto) apply_tuple(F &&f, Tuple &&t) {
|
|||
Indices{});
|
||||
}
|
||||
|
||||
/// Substitute for std::identity.
|
||||
/// Switch to std::identity once we can use c++20.
|
||||
template <class Ty> struct identity {
|
||||
using is_transparent = void;
|
||||
using argument_type = Ty;
|
||||
|
||||
Ty &operator()(Ty &self) const { return self; }
|
||||
const Ty &operator()(const Ty &self) const { return self; }
|
||||
};
|
||||
|
||||
} // namespace __orc_rt
|
||||
|
||||
#endif // ORC_RT_STL_EXTRAS
|
||||
|
|
Loading…
Reference in New Issue