File indexing completed on 2025-04-26 08:26:32
0001 #ifndef BOOST_COMPAT_TYPE_TRAITS_HPP_INCLUDED
0002 #define BOOST_COMPAT_TYPE_TRAITS_HPP_INCLUDED
0003
0004
0005
0006
0007
0008
0009 #include <type_traits>
0010
0011 namespace boost {
0012 namespace compat {
0013
0014 template<class T> using remove_const_t = typename std::remove_const<T>::type;
0015 template<class T> using remove_cv_t = typename std::remove_cv<T>::type;
0016 template<class T> using remove_reference_t = typename std::remove_reference<T>::type;
0017 template<class T> using remove_cvref_t = remove_cv_t< remove_reference_t<T> >;
0018
0019 template<class T> using decay_t = typename std::decay<T>::type;
0020
0021 template<bool B, class T = void> using enable_if_t = typename std::enable_if<B, T>::type;
0022
0023 template<bool B, class T, class F> using conditional_t = typename std::conditional<B, T, F>::type;
0024
0025 namespace detail {
0026
0027 template<class...> struct make_void
0028 {
0029 using type = void;
0030 };
0031
0032 }
0033
0034 template<class... T> using void_t = typename detail::make_void<T...>::type;
0035
0036 template<class T> using add_const_t = typename std::add_const<T>::type;
0037
0038 }
0039 }
0040
0041 #endif