17#ifndef LLVM_ADT_STLFORWARDCOMPAT_H
18#define LLVM_ADT_STLFORWARDCOMPAT_H
32 using type = std::remove_cv_t<std::remove_reference_t<T>>;
53template <
class,
template <
class...>
class Op,
class... Args>
struct detector {
56template <
template <
class...>
class Op,
class... Args>
69template <
template <
class...>
class Op,
class... Args>
78template <
typename Optional,
typename Function,
80std::optional<std::invoke_result_t<Function, Value>>
83 return F(*std::forward<Optional>(O));
90template <
typename Enum>
92 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.
DWARFExpression::Operation Op
typename detail::detector< void, Op, Args... >::value_t is_detected
Detects if a given trait holds for some set of arguments 'Args'.
std::optional< std::invoke_result_t< Function, Value > > transformOptional(Optional &&O, Function &&F)
Implement std::hash so that hash_code can be used in STL containers.
std::remove_cv_t< std::remove_reference_t< T > > type