...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
template<class... T> struct conjunction;
Inherits: Inherits from the first type
U
in the list for which
bool(U::value)
is false
,
or the last type in the list if there is no such type. If sizeof...(T)
is 0
then inherits from true_type
.
Header: #include
<boost/type_traits/conjunction.hpp>
Compiler Compatibility: All current compilers
are supported by this trait. In the absence of variadic-template support,
conjunction
has only 2 parameters.
Examples:
Given:
template<int N> struct Int { static const int value = N };
conjunction<>
inherits fromtrue_type
.
conjunction<Int<1> >
inherits fromInt<1>
.
conjunction<Int<1>, Int<2>, Int<3> >
inherits fromInt<3>
.
conjunction<Int<1>, Int<0>, Int<3> >
inherits fromInt<0>
.