Back to home page

EIC code displayed by LXR

 
 

    


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 Copyright 2020 Glen Joseph Fernandes
0003 (glenjofe@gmail.com)
0004 
0005 Distributed under the Boost Software License,
0006 Version 1.0. (See accompanying file LICENSE_1_0.txt
0007 or copy at http://www.boost.org/LICENSE_1_0.txt)
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 } /* boost */
0039 
0040 #endif