17 #ifndef LLVM_ADT_STLFORWARDCOMPAT_H
18 #define LLVM_ADT_STLFORWARDCOMPAT_H
20 #include <type_traits>
30 : std::integral_constant<bool, !bool(T::value)> {};
32 template <
typename...>
36 template <
typename B1,
typename... Bn>
38 : std::conditional<bool(B1::value), conjunction<Bn...>, B1>
::type {};
40 template <
typename...>
44 template <
typename B1,
typename... Bn>
46 : std::conditional<bool(B1::value), B1, disjunction<Bn...>>
::type {};
61 template <std::
size_t I>
74 using type = std::remove_cv_t<std::remove_reference_t<T>>;
83 #endif // LLVM_ADT_STLFORWARDCOMPAT_H