Warning, file /include/boost/type_traits/conjunction.hpp was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef BOOST_TT_CONJUNCTION_HPP_INCLUDED
0011 #define BOOST_TT_CONJUNCTION_HPP_INCLUDED
0012
0013 #include <boost/type_traits/conditional.hpp>
0014 #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
0015 #include <boost/type_traits/integral_constant.hpp>
0016 #endif
0017
0018 namespace boost {
0019
0020 #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
0021 template<class...>
0022 struct conjunction
0023 : true_type { };
0024
0025 template<class T>
0026 struct conjunction<T>
0027 : T { };
0028
0029 template<class T, class... U>
0030 struct conjunction<T, U...>
0031 : conditional<bool(T::value), conjunction<U...>, T>::type { };
0032 #else
0033 template<class T, class U>
0034 struct conjunction
0035 : conditional<bool(T::value), U, T>::type { };
0036 #endif
0037
0038 }
0039
0040 #endif