Docs and doxygen markup updated

This commit is contained in:
Antony Polukhin
2013-10-29 17:08:28 +04:00
parent 1508e1d560
commit cadd22c74d
5 changed files with 44 additions and 7 deletions

View File

@@ -97,8 +97,27 @@ inline void lazy_function_signature_assert() {
}
#endif
#if defined(BOOST_TYPE_INDEX_DOXYGEN_INVOKED)
#if defined(BOOST_TYPE_INDEX_CTTI_BEGIN_SKIP) && defined(BOOST_TYPE_INDEX_CTTI_END_SKIP)
/// \def BOOST_TYPE_INDEX_CTTI_BEGIN_SKIP
///
/// BOOST_TYPE_INDEX_FUNCTION_SIGNATURE, BOOST_TYPE_INDEX_CTTI_BEGIN_SKIP
/// and BOOST_TYPE_INDEX_CTTI_END_SKIP macroses are used for adding a
/// support for compilers, that by default are not recognized by TypeIndex library.
///
/// See Compiler support for more info
#define BOOST_TYPE_INDEX_CTTI_BEGIN_SKIP 0
/// \def BOOST_TYPE_INDEX_CTTI_END_SKIP
///
/// BOOST_TYPE_INDEX_FUNCTION_SIGNATURE, BOOST_TYPE_INDEX_CTTI_BEGIN_SKIP
/// and BOOST_TYPE_INDEX_CTTI_END_SKIP macroses are used for adding a
/// support for compilers, that by default are not recognized by TypeIndex library.
///
/// See Compiler support for more info
#define BOOST_TYPE_INDEX_CTTI_END_SKIP 0
#elif defined(BOOST_TYPE_INDEX_CTTI_BEGIN_SKIP) && defined(BOOST_TYPE_INDEX_CTTI_END_SKIP)
// skip user specified bytes count
BOOST_STATIC_CONSTANT(std::size_t, ctti_skip_size_at_begin = BOOST_TYPE_INDEX_CTTI_BEGIN_SKIP);
// skip user specified bytes count

View File

@@ -138,6 +138,8 @@ public:
/* *************** type_index free functions ******************* */
#ifndef BOOST_TYPE_INDEX_DOXYGEN_INVOKED
inline bool operator == (detail::stl_type_info const& lhs, type_index const& rhs) BOOST_NOEXCEPT {
return rhs == lhs; // Operation is commutative
}
@@ -162,9 +164,16 @@ inline bool operator >= (detail::stl_type_info const& lhs, type_index const& rhs
return rhs <= lhs;
}
#ifdef BOOST_CLASSINFO_COMPARE_BY_NAMES
#undef BOOST_CLASSINFO_COMPARE_BY_NAMES
#endif
#else // BOOST_TYPE_INDEX_DOXYGEN_INVOKED
inline bool operator == (std::type_info const& lhs, type_index const& rhs) BOOST_NOEXCEPT;
inline bool operator != (std::type_info const& lhs, type_index const& rhs) BOOST_NOEXCEPT;
inline bool operator < (std::type_info const& lhs, type_index const& rhs) BOOST_NOEXCEPT;
inline bool operator > (std::type_info const& lhs, type_index const& rhs) BOOST_NOEXCEPT;
inline bool operator <= (std::type_info const& lhs, type_index const& rhs) BOOST_NOEXCEPT;
inline bool operator >= (std::type_info const& lhs, type_index const& rhs) BOOST_NOEXCEPT;
#endif // BOOST_TYPE_INDEX_DOXYGEN_INVOKED
/* *************** type_index free functions ******************* */

View File

@@ -268,6 +268,7 @@ inline const type_info& type_id_rtti_only(T* rtti_val) {
/* *************** type_info free functions ******************* */
#ifndef BOOST_TYPE_INDEX_DOXYGEN_INVOKED
inline bool operator == (detail::stl_type_info const& lhs, type_info const& rhs) BOOST_NOEXCEPT {
return rhs == static_cast<const boost::type_info&>(lhs);
@@ -277,6 +278,13 @@ inline bool operator != (detail::stl_type_info const& lhs, type_info const& rhs)
return !(lhs == rhs);
}
#else // BOOST_TYPE_INDEX_DOXYGEN_INVOKED
inline bool operator == (std::type_info const& lhs, type_info const& rhs) BOOST_NOEXCEPT;
inline bool operator != (std::type_info const& lhs, type_info const& rhs) BOOST_NOEXCEPT;
#endif // BOOST_TYPE_INDEX_DOXYGEN_INVOKED
/// hash_value function overload for boost::type_info.
inline std::size_t hash_value(type_info const& v) BOOST_NOEXCEPT {
return v.hash_code();

View File

@@ -19,6 +19,7 @@ doxygen autodoc
<doxygen:param>EXPAND_ONLY_PREDEF=YES
<doxygen:param>MACRO_EXPANSION=YES
<doxygen:param>"PREDEFINED=\"stl_type_info=std::type_info\" \\
\"BOOST_TYPE_INDEX_DOXYGEN_INVOKED\" \\
\"detail::stl_type_info=std::type_info\""
<xsl:param>"boost.doxygen.reftitle=Boost.TypeIndex Header Reference"
;

View File

@@ -114,10 +114,10 @@ i
[section Compiler support]
TypeIndex has been tested and successfully work on MSVC2010, GCC-4.5, Clang-2.9. If your compiler is not
in a list of tested compilers, you shall correctly define `BOOST_TYPE_INDEX_FUNCTION_SIGNATURE`,
in a list of tested compilers, you must correctly define `BOOST_TYPE_INDEX_FUNCTION_SIGNATURE`,
`BOOST_TYPE_INDEX_CTTI_BEGIN_SKIP` and `BOOST_TYPE_INDEX_CTTI_END_SKIP` macroses:
# define `BOOST_TYPE_INDEX_FUNCTION_SIGNATURE` to a a compiler specific macro, that outputs the *whole*
# define `BOOST_TYPE_INDEX_FUNCTION_SIGNATURE` to a compiler specific macro, that outputs the *whole*
function signature, including template parameters
# define `BOOST_TYPE_INDEX_CTTI_BEGIN_SKIP` and `BOOST_TYPE_INDEX_CTTI_END_SKIP` to `0`
# get the output of `boost::template_id<int>().name()`
@@ -165,7 +165,7 @@ Such differences are usually not detected by linker and lead to errors at runtim
[warning
Even with `BOOST_TYPE_INDEX_FORCE_NORTTI_COMPATIBILITY` defined there is no guarantee
that everything will be OK. Libraries that use their own workarounds for disabled RTTI
may fail to link orwork correctly.
may fail to link or to work correctly.
]
[endsect]