For a specialization conjunction<B1, …, BN>,
if there is a template type argument Bi
for which bool(Bi::value) is false,
then instantiating conjunction<B1, …, BN>::value
does not require the instantiation of Bj::value for j>i.
Every template type argument
for which Bi::value is instantiated
shall be usable as a base class and
shall have a member value which
is convertible to bool,
is not hidden, and
is unambiguously available in the type.
For a specialization disjunction<B1, …, BN>,
if there is a template type argument Bi
for which bool(Bi::value) is true,
then instantiating disjunction<B1, …, BN>::value
does not require the instantiation of Bj::value for j>i.
Every template type argument
for which Bi::value is instantiated
shall be usable as a base class and
shall have a member value which
is convertible to bool,
is not hidden, and
is unambiguously available in the type.