14 #ifndef BOOST_CORE_ENABLE_IF_HPP 15 #define BOOST_CORE_ENABLE_IF_HPP 22 #ifndef BOOST_NO_SFINAE 27 template <
bool B,
class T =
void>
35 template <
class Cond,
class T =
void>
38 template <
bool B,
class T>
46 template <
class Cond,
class T>
50 template <
bool B,
class T =
void>
58 template <
class Cond,
class T =
void>
61 template <
bool B,
class T>
69 template <
class Cond,
class T>
78 namespace detail {
typedef void enable_if_default_T; }
81 struct enable_if_does_not_work_on_this_compiler;
83 template <
bool B,
class T = detail::enable_if_default_T>
84 struct enable_if_c : enable_if_does_not_work_on_this_compiler<T>
87 template <
bool B,
class T = detail::enable_if_default_T>
88 struct disable_if_c : enable_if_does_not_work_on_this_compiler<T>
91 template <
bool B,
class T = detail::enable_if_default_T>
95 template <
bool B,
class T = detail::enable_if_default_T>
99 template <
class Cond,
class T = detail::enable_if_default_T>
100 struct enable_if : enable_if_does_not_work_on_this_compiler<T>
103 template <
class Cond,
class T = detail::enable_if_default_T>
104 struct disable_if : enable_if_does_not_work_on_this_compiler<T>
107 template <
class Cond,
class T = detail::enable_if_default_T>
108 struct lazy_enable_if : enable_if_does_not_work_on_this_compiler<T>
111 template <
class Cond,
class T = detail::enable_if_default_T>
117 #endif // BOOST_NO_SFINAE
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.