Boost C++ 库

...世界上最受推崇和设计精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu,《C++ 编码规范

参考 - Boost C++ 函数库
PrevUpHomeNext

参考

BOOST_TRIBOOL_THIRD_STATE(Name)
namespace boost {
  namespace logic {
    class tribool;
    BOOST_CONSTEXPR bool indeterminate(tribool, unspecified = unspecified);
    BOOST_CONSTEXPR tribool operator!(tribool);
    BOOST_CONSTEXPR tribool operator&&(tribool, tribool);
    BOOST_CONSTEXPR tribool operator&&(tribool, bool);
    BOOST_CONSTEXPR tribool operator&&(bool, tribool);
    BOOST_CONSTEXPR tribool operator&&(indeterminate_keyword_t, tribool);
    BOOST_CONSTEXPR tribool operator&&(tribool, indeterminate_keyword_t);
    BOOST_CONSTEXPR tribool operator||(tribool, tribool);
    BOOST_CONSTEXPR tribool operator||(tribool, bool);
    BOOST_CONSTEXPR tribool operator||(bool, tribool);
    BOOST_CONSTEXPR tribool operator||(indeterminate_keyword_t, tribool);
    BOOST_CONSTEXPR tribool operator||(tribool, indeterminate_keyword_t);
    BOOST_CONSTEXPR tribool operator==(tribool, tribool);
    BOOST_CONSTEXPR tribool operator==(tribool, bool);
    BOOST_CONSTEXPR tribool operator==(bool, tribool);
    BOOST_CONSTEXPR tribool operator==(indeterminate_keyword_t, tribool);
    BOOST_CONSTEXPR tribool operator==(tribool, indeterminate_keyword_t);
    BOOST_CONSTEXPR tribool operator!=(tribool, tribool);
    BOOST_CONSTEXPR tribool operator!=(tribool, bool);
    BOOST_CONSTEXPR tribool operator!=(bool, tribool);
    BOOST_CONSTEXPR tribool operator!=(indeterminate_keyword_t, tribool);
    BOOST_CONSTEXPR 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 &);
  }
}

PrevUpHomeNext