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.