| 
| 
bool_set  | operator! (bool_set __b) | 
|   | 
| 
bool_set  | operator& (bool_set __s, bool_set __t) | 
|   | 
| 
template<typename CharT , typename Traits >  | 
std::basic_ostream< CharT,  
Traits > &  | operator<< (std::basic_ostream< CharT, Traits > &__out, bool_set __b) | 
|   | 
| 
bool_set  | operator== (bool_set __s, bool_set __t) | 
|   | 
| 
template<typename CharT , typename Traits >  | 
std::basic_istream< CharT,  
Traits > &  | operator>> (std::basic_istream< CharT, Traits > &__in, bool_set &__b) | 
|   | 
| 
bool_set  | operator^ (bool_set __s, bool_set __t) | 
|   | 
| 
bool_set  | operator| (bool_set __s, bool_set __t) | 
|   | 
bool_set
See N2136, Bool_set: multi-valued logic by Hervé Brönnimann, Guillaume Melquiond, Sylvain Pion.
The implicit conversion to bool is slippery! I may use the new explicit conversion. This has been specialized in the language so that in contexts requiring a bool the conversion happens implicitly. Thus most objections should be eliminated. 
Definition at line 54 of file bool_set.