BOOST_TRIBOOL_THIRD_STATE(Name)
namespace boost {
namespace logic {
class tribool;
bool indeterminate(tribool, unspecified = unspecified);
tribool operator!(tribool);
tribool operator&&(tribool, tribool);
tribool operator&&(tribool, bool);
tribool operator&&(bool, tribool);
tribool operator&&(indeterminate_keyword_t, tribool);
tribool operator&&(tribool, indeterminate_keyword_t);
tribool operator||(tribool, tribool);
tribool operator||(tribool, bool);
tribool operator||(bool, tribool);
tribool operator||(indeterminate_keyword_t, tribool);
tribool operator||(tribool, indeterminate_keyword_t);
tribool operator==(tribool, tribool);
tribool operator==(tribool, bool);
tribool operator==(bool, tribool);
tribool operator==(indeterminate_keyword_t, tribool);
tribool operator==(tribool, indeterminate_keyword_t);
tribool operator!=(tribool, tribool);
tribool operator!=(tribool, bool);
tribool operator!=(bool, tribool);
tribool operator!=(indeterminate_keyword_t, tribool);
tribool operator!=(tribool, indeterminate_keyword_t);
}
}
namespace boost {
namespace logic {
template<typename CharT> class indeterminate_name;
template<typename T>
std::basic_string< T > get_default_indeterminate_name();
// Returns the character string "indeterminate".
template<>
std::basic_string< char > get_default_indeterminate_name<char >();
// Returns the wide character string L"indeterminate".
template<>
std::basic_string< wchar_t > get_default_indeterminate_name<wchar_t >();
template<typename CharT, typename Traits>
std::basic_ostream< CharT, Traits > &
operator<<(std::basic_ostream< CharT, Traits > &, tribool);
template<typename CharT, typename Traits>
std::basic_ostream< CharT, Traits > &
operator<<(std::basic_ostream< CharT, Traits > &, unspecified);
template<typename CharT, typename Traits>
std::basic_istream< CharT, Traits > &
operator>>(std::basic_istream< CharT, Traits > &, tribool &);
}
}