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.