17#ifndef LLVM_ADT_STLFORWARDCOMPAT_H
18#define LLVM_ADT_STLFORWARDCOMPAT_H
32 using type = std::remove_cv_t<std::remove_reference_t<T>>;
58template <
typename Optional,
typename Function,
60std::optional<std::invoke_result_t<Function, Value>>
63 return F(*std::forward<Optional>(O));
70template <
typename Enum>
72 return static_cast<std::underlying_type_t<Enum>
>(
E);
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
LLVM Value Representation.
This is an optimization pass for GlobalISel generic memory operations.
constexpr from_range_t from_range
constexpr std::underlying_type_t< Enum > to_underlying(Enum E)
Returns underlying integer value of an enum.
typename llvm::remove_cvref< T >::type remove_cvref_t
std::optional< std::invoke_result_t< Function, Value > > transformOptional(Optional &&O, Function &&F)
typename llvm::type_identity< T >::type type_identity_t
std::remove_cv_t< std::remove_reference_t< T > > type