17#ifndef LLVM_ADT_STLFORWARDCOMPAT_H
18#define LLVM_ADT_STLFORWARDCOMPAT_H
32 using type = std::remove_cv_t<std::remove_reference_t<T>>;
45template <
typename T,
typename Function>
47 -> std::optional<
decltype(
F(*O))> {
55template <
typename T,
typename Function>
57 -> std::optional<
decltype(
F(*std::move(O)))> {
59 return F(*std::move(O));
65template <
typename Enum>
67 return static_cast<std::underlying_type_t<Enum>
>(
E);
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
This is an optimization pass for GlobalISel generic memory operations.
auto transformOptional(const std::optional< T > &O, const Function &F) -> std::optional< decltype(F(*O))>
constexpr std::underlying_type_t< Enum > to_underlying(Enum E)
Returns underlying integer value of an enum.
std::remove_cv_t< std::remove_reference_t< T > > type