1
0
forked from boostorg/core

Documentation tweaks.

1. Changed scoped_enum.qbk so that it's compatible with QuickBook 1.6.
2. Added Doxygen predefined macros to improve quality of the generated reference sections.
This commit is contained in:
Andrey Semashev
2014-06-12 00:15:52 +04:00
parent 2af3cc1e11
commit 9c8daaf64d
2 changed files with 32 additions and 13 deletions

View File

@@ -18,6 +18,24 @@ doxygen ref_reference
<doxygen:param>EXTRACT_PRIVATE=NO <doxygen:param>EXTRACT_PRIVATE=NO
<doxygen:param>HIDE_UNDOC_MEMBERS=YES <doxygen:param>HIDE_UNDOC_MEMBERS=YES
<doxygen:param>MACRO_EXPANSION=YES <doxygen:param>MACRO_EXPANSION=YES
<doxygen:param>"PREDEFINED=BOOST_CORE_DOXYGEN \\
BOOST_SYMBOL_VISIBLE= \\
BOOST_FORCEINLINE=inline \\
BOOST_STATIC_ASSERT(x)= \\
BOOST_STATIC_ASSERT_MSG(x,y)= \\
BOOST_STATIC_CONSTANT(x,y)=\"static constexpr x y\" \\
BOOST_RV_REF(x)=\"x&&\" \\
BOOST_NESTED_TEMPLATE=template \\
BOOST_CONSTEXPR=constexpr \\
BOOST_CONSTEXPR_OR_CONST=constexpr \\
BOOST_NOEXCEPT=noexcept \\
BOOST_NOEXCEPT_IF(x)=noexcept(x) \\
BOOST_NOEXCEPT_OR_NOTHROW=noexcept \\
BOOST_COPY_ASSIGN_REF(x)=\"x const&\" \\
BOOST_DEFAULTED_FUNCTION(x,y)=\"x = default;\" \\
BOOST_DELETED_FUNCTION(x)=\"x = delete;\" \\
BOOST_EXPLICIT_OPERATOR_BOOL()=\"explicit operator bool() const;\" \\
BOOST_REF_CONST=const"
; ;
xml core : core.qbk ; xml core : core.qbk ;

View File

@@ -1,14 +1,12 @@
[quickbook 1.5]
[section:scoped_enum scoped_enum] [section:scoped_enum scoped_enum]
[section Authors] [simplesect Authors]
* Beman Dawes * Beman Dawes
* Vicente J. Botet Escriba * Vicente J. Botet Escriba
* Anthony Williams * Anthony Williams
[endsect] [endsimplesect]
[section Overview] [section Overview]
@@ -59,12 +57,9 @@ The enumeration can be forward declared:
BOOST_SCOPED_ENUM_FORWARD_DECLARE(future_errc); BOOST_SCOPED_ENUM_FORWARD_DECLARE(future_errc);
There are however some limitations: There are however some limitations. First, the emulated scoped enum is not a C++ enum, so `is_enum< future_errc >` will be `false_type`.
* The emulated scoped enum is not a C++ enum, so `is_enum< future_errc >` will be `false_type`. Second, the emulated scoped enum can not be used in switch nor in template arguments. For these cases the user needs to use some helpers. Instead of
* The emulated scoped enum can not be used in switch nor in template arguments. For these cases the user needs to use some helpers.
Instead of
switch (ev) switch (ev)
{ {
@@ -78,7 +73,7 @@ use
case future_errc::broken_promise: case future_errc::broken_promise:
// ... // ...
And instead of and instead of
template <> template <>
struct is_error_code_enum< future_errc > : struct is_error_code_enum< future_errc > :
@@ -94,13 +89,19 @@ use
{ {
}; };
* Explicit conversion to the underlying type should be performed with `boost::underlying_cast` instead of `static_cast`: Lastly, explicit conversion to the underlying type should be performed with `boost::underlying_cast` instead of `static_cast`:
unsigned int val = boost::underlying_cast< unsigned int >(ev); unsigned int val = boost::underlying_cast< unsigned int >(ev);
Sample usage: Here is usage example:
BOOST_SCOPED_ENUM_UT_DECLARE_BEGIN(algae, char) { green, red, cyan }; BOOST_SCOPED_ENUM_DECLARE_END(algae) BOOST_SCOPED_ENUM_UT_DECLARE_BEGIN(algae, char)
{
green,
red,
cyan
}
BOOST_SCOPED_ENUM_DECLARE_END(algae)
... ...
algae sample( algae::red ); algae sample( algae::red );
void foo( algae color ); void foo( algae color );