From b800b9d71d6862ff1d50fce0303f8f54d71619d0 Mon Sep 17 00:00:00 2001 From: Antony Polukhin Date: Sat, 9 Jun 2012 23:18:24 +0400 Subject: [PATCH] Doxygen documentation updated --- boost/type_index.hpp | 69 ++++++++++++++++++++-------------- libs/type_index/doc/Jamfile.v2 | 3 +- 2 files changed, 42 insertions(+), 30 deletions(-) diff --git a/boost/type_index.hpp b/boost/type_index.hpp index 6931b16..7a4cb50 100644 --- a/boost/type_index.hpp +++ b/boost/type_index.hpp @@ -68,10 +68,8 @@ namespace detail { // TODO: Code for other platforms BOOST_STATIC_CONSTANT(std::size_t, ctti_skip_size_at_begin = 0); // skip nothing BOOST_STATIC_CONSTANT(std::size_t, ctti_skip_size_at_end = 0); // skip nothing - #endif - /// Noncopyable type_info that does not require RTTI /// CTTI == Compile Time Type Info /// This name must be as short as posible, to avoid code bloat @@ -167,35 +165,31 @@ public: return std::string(name_, std::strlen(name_) - detail::ctti_skip_size_at_end); } - /// Comparison operator + /// @cond bool operator == (const template_index& rhs) const BOOST_NOEXCEPT { return !std::strcmp(name_, rhs.name()); } - /// Comparison operator bool operator != (const template_index& rhs) const BOOST_NOEXCEPT { return !!std::strcmp(name_, rhs.name()); } - /// Comparison operator bool operator < (const template_index& rhs) const BOOST_NOEXCEPT { return std::strcmp(name_, rhs.name()) < 0; } - /// Comparison operator bool operator > (const template_index& rhs) const BOOST_NOEXCEPT { return std::strcmp(name_, rhs.name()) > 0; } - /// Comparison operator bool operator <= (const template_index& rhs) const BOOST_NOEXCEPT { return std::strcmp(name_, rhs.name()) <= 0; } - /// Comparison operator bool operator >= (const template_index& rhs) const BOOST_NOEXCEPT { return std::strcmp(name_, rhs.name()) >= 0; } + /// @endcond /// Function for getting hash value std::size_t hash_code() const BOOST_NOEXCEPT { @@ -219,6 +213,9 @@ template_index template_id_with_cvr() BOOST_NOEXCEPT { #ifndef BOOST_NO_RTTI + +#ifndef BOOST_TYPE_INDEX_DOXYGEN_INVOKED + // for this compiler at least, cross-shared-library type_info // comparisons don't work, so use typeid(x).name() instead. It's not // yet clear what the best default strategy is. @@ -233,6 +230,8 @@ template_index template_id_with_cvr() BOOST_NOEXCEPT { # define BOOST_CLASSINFO_COMPARISON_NOEXCEPT BOOST_NOEXCEPT # endif +#endif // BOOST_TYPE_INDEX_DOXYGEN_INVOKED + /// @} /// @defgroup type_index_methods type_index class and methods @@ -304,7 +303,7 @@ public: #endif } - /// Comparison operator +#ifndef BOOST_TYPE_INDEX_DOXYGEN_INVOKED bool operator == (type_index const& rhs) const BOOST_CLASSINFO_COMPARISON_NOEXCEPT { #ifdef BOOST_CLASSINFO_COMPARE_BY_NAMES return !std::strcmp(pinfo_->name(), rhs.pinfo_->name()); @@ -313,12 +312,10 @@ public: #endif } - /// Comparison operator bool operator != (type_index const& rhs) const BOOST_CLASSINFO_COMPARISON_NOEXCEPT { return !(*this == rhs); } - /// Comparison operator bool operator < (type_index const& rhs) const BOOST_CLASSINFO_COMPARISON_NOEXCEPT { #ifdef BOOST_CLASSINFO_COMPARE_BY_NAMES return std::strcmp(pinfo_->name(), rhs.pinfo_->name()) < 0; @@ -327,23 +324,18 @@ public: #endif } - /// Comparison operator bool operator > (type_index const& rhs) const BOOST_CLASSINFO_COMPARISON_NOEXCEPT { return (rhs < *this); } - /// Comparison operator bool operator <= (type_index const& rhs) const BOOST_CLASSINFO_COMPARISON_NOEXCEPT { return !(*this > rhs); } - /// Comparison operator bool operator >= (type_index const& rhs) const BOOST_CLASSINFO_COMPARISON_NOEXCEPT { return !(*this < rhs); } - - /// Comparison operator for native std::type_info bool operator == (stl_type_info const& rhs) const BOOST_CLASSINFO_COMPARISON_NOEXCEPT { #ifdef BOOST_CLASSINFO_COMPARE_BY_NAMES return !std::strcmp(pinfo_->name(), rhs.name()); @@ -352,12 +344,10 @@ public: #endif } - /// Comparison operator for native std::type_info bool operator != (stl_type_info const& rhs) const BOOST_CLASSINFO_COMPARISON_NOEXCEPT { return !(*this == rhs); } - /// Comparison operator for native std::type_info bool operator < (stl_type_info const& rhs) const BOOST_CLASSINFO_COMPARISON_NOEXCEPT { #ifdef BOOST_CLASSINFO_COMPARE_BY_NAMES return std::strcmp(pinfo_->name(), rhs.name()) < 0; @@ -366,7 +356,6 @@ public: #endif } - /// Comparison operator for native std::type_info bool operator > (stl_type_info const& rhs) const BOOST_CLASSINFO_COMPARISON_NOEXCEPT { #ifdef BOOST_CLASSINFO_COMPARE_BY_NAMES return std::strcmp(pinfo_->name(), rhs.name()) > 0; @@ -375,15 +364,14 @@ public: #endif } - /// Comparison operator for native std::type_info bool operator <= (stl_type_info const& rhs) const BOOST_CLASSINFO_COMPARISON_NOEXCEPT { return !(*this > rhs); } - /// Comparison operator for native std::type_info bool operator >= (stl_type_info const& rhs) const BOOST_CLASSINFO_COMPARISON_NOEXCEPT { return !(*this < rhs); } +#endif // BOOST_TYPE_INDEX_DOXYGEN_INVOKED /// Function for getting hash value std::size_t hash_code() const { @@ -391,44 +379,45 @@ public: } }; -/// Comparison operator for native std::type_info +#ifndef BOOST_TYPE_INDEX_DOXYGEN_INVOKED + inline bool operator == (type_index::stl_type_info const& lhs, type_index const& rhs) BOOST_CLASSINFO_COMPARISON_NOEXCEPT { return rhs == lhs; // Operation is comutative } -/// Comparison operator for native std::type_info inline bool operator != (type_index::stl_type_info const& lhs, type_index const& rhs) BOOST_CLASSINFO_COMPARISON_NOEXCEPT { return rhs != lhs; // Operation is comutative } -/// Comparison operator for native std::type_info inline bool operator < (type_index::stl_type_info const& lhs, type_index const& rhs) BOOST_CLASSINFO_COMPARISON_NOEXCEPT { return rhs > lhs; } -/// Comparison operator for native std::type_info inline bool operator > (type_index::stl_type_info const& lhs, type_index const& rhs) BOOST_CLASSINFO_COMPARISON_NOEXCEPT { return rhs < lhs; } -/// Comparison operator for native std::type_info inline bool operator <= (type_index::stl_type_info const& lhs, type_index const& rhs) BOOST_CLASSINFO_COMPARISON_NOEXCEPT { return rhs >= lhs; } -/// Comparison operator for native std::type_info inline bool operator >= (type_index::stl_type_info const& lhs, type_index const& rhs) BOOST_CLASSINFO_COMPARISON_NOEXCEPT { return rhs <= lhs; } #undef BOOST_CLASSINFO_COMPARISON_NOEXCEPT +#endif // BOOST_TYPE_INDEX_DOXYGEN_INVOKED + + + #ifdef BOOST_CLASSINFO_COMPARE_BY_NAMES #undef BOOST_CLASSINFO_COMPARE_BY_NAMES #endif -/// Function, to get type_index for a type T. -/// Strips const, volatile and & modifiers from T. +/// @endcond + +/// Function, to get type_index for a type T. Strips const, volatile and & modifiers from T. template type_index type_id() { return type_index::construct(); @@ -437,6 +426,8 @@ type_index type_id() { /* *************** type_index free functions ******************* */ +/// @cond + #ifndef BOOST_NO_IOSTREAM #ifdef BOOST_NO_TEMPLATED_IOSTREAMS @@ -462,6 +453,7 @@ inline std::size_t hash_value(type_index const& v) { return v.hash_code(); } +/// @endcond #else // BOOST_NO_RTTI is defined @@ -478,6 +470,8 @@ type_index type_id() { /* *************** template_index free functions ******************* */ +/// @cond + #ifndef BOOST_NO_IOSTREAM #ifdef BOOST_NO_TEMPLATED_IOSTREAMS /// Ostream operator that will output demangled name @@ -500,6 +494,23 @@ inline std::size_t hash_value(template_index const& v) BOOST_NOEXCEPT { return v.hash_code(); } +/// @endcond + +#ifdef BOOST_TYPE_INDEX_DOXYGEN_INVOKED + +/// Output operators for type_index and template_index +std::basic_ostream& operator<<(std::basic_ostream, template_index/type_index const & rhs); + +/// All possible operators for comparison of std::type_info's and type_index'es. +inline bool operator(type_index/std::type_info const& lhs, type_index/std::type_info const& rhs); + +/// All possible operators for comparison of template_index'es. +inline bool operator(template_index const& lhs, template_index const& rhs); + +/// All possible operators for comparison of type_index'es. +inline bool operator(type_index const& lhs, type_index const& rhs); + +#endif // BOOST_TYPE_INDEX_DOXYGEN_INVOKED /// @} diff --git a/libs/type_index/doc/Jamfile.v2 b/libs/type_index/doc/Jamfile.v2 index 475a7f1..3f6ea18 100644 --- a/libs/type_index/doc/Jamfile.v2 +++ b/libs/type_index/doc/Jamfile.v2 @@ -18,10 +18,11 @@ doxygen autodoc EXPAND_ONLY_PREDEF=YES MACRO_EXPANSION=YES "PREDEFINED=\"insert_const_ref_type= const T&\" \\ - \"BOOST_CONTAINER_DOXYGEN_INVOKED\" \\ + \"BOOST_TYPE_INDEX_DOXYGEN_INVOKED\" \\ \"BOOST_RV_REF(T)=T &&\" \\ \"BOOST_RV_REF_BEG=\" \\ \"BOOST_RV_REF_END=&&\" \\ + \"BOOST_CLASSINFO_COMPARISON_NOEXCEPT=\" \\ \"BOOST_COPY_ASSIGN_REF(T)=const T &\" \\ \"BOOST_RV_REF_2_TEMPL_ARGS(T,a,b)=T &&\" \\ \"BOOST_RV_REF_3_TEMPL_ARGS(T,a,b,c)=TT &&\" \\