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));
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))>
std::remove_cv_t< std::remove_reference_t< T > > type