14 #include <type_traits>
23 template <
bool B,
class T =
void>
26 template <
bool B,
class T,
class F>
32 template <
typename T>
using remove_cv_t =
typename std::remove_cv<T>::type;
37 template <
typename T>
using add_pointer_t =
typename std::add_pointer<T>::type;
40 template <
bool V>
using bool_constant = std::integral_constant<bool, V>;
42 template <
class...>
using void_t = void;
62 std::is_const<typename std::remove_pointer<iterator_pointer_t<T>>::type>;
69 decltype(*std::declval<T>() =
73 static constexpr
bool value =
false;
78 static constexpr
bool value =
true;