* include/std/streambuf: Likewise.
* doc/html/*: Regenerate.
+ * include/experimental/any (any_cast): Combine duplicate doxygen
+ comments.
+ * include/experimental/string_view (basic_string_view): Update
+ doxygen comment.
+ * include/std/bitset (bitset): Move to Doxygen 'utilities' group.
+ * include/tr2/dynamic_bitset (_Bool2UChar): Remove unused templates.
+ (dynamic_bitset): Improve Doxygen comments.
+ * include/tr2/dynamic_bitset.tcc (operator>>): Improve Doxygen
+ comment.
+
2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
* testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc
}
/**
- * @brief A type-safe container of any type.
- *
- * An @c any object's state is either empty or it stores a contained object
- * of CopyConstructible type.
- */
+ * @brief A type-safe container of any type.
+ *
+ * An @c any object's state is either empty or it stores a contained object
+ * of CopyConstructible type.
+ */
class any
{
// Holds either pointer to a heap object or the contained object itself.
* @throw bad_any_cast If <code>
* __any.type() != typeid(remove_reference_t<_ValueType>)
* </code>
+ *
+ * @{
*/
template<typename _ValueType>
inline _ValueType any_cast(any& __any)
__throw_bad_any_cast();
}
- /**
- * @brief Access the contained object.
- *
- * @tparam _ValueType A reference or CopyConstructible type.
- * @param __any The object to access.
- * @return The contained object.
- * @throw bad_any_cast If <code>
- * __any.type() != typeid(remove_reference_t<_ValueType>)
- * </code>
- */
template<typename _ValueType>
inline _ValueType any_cast(any&& __any)
{
return *__p;
__throw_bad_any_cast();
}
+ // @}
/**
* @brief Access the contained object.
* @return The address of the contained object if <code>
* __any != nullptr && __any.type() == typeid(_ValueType)
* </code>, otherwise a null pointer.
+ *
+ * @{
*/
template<typename _ValueType>
inline const _ValueType* any_cast(const any* __any) noexcept
return nullptr;
}
- /**
- * @brief Access the contained object.
- *
- * @tparam _ValueType The type of the contained object.
- * @param __any A pointer to the object to access.
- * @return The address of the contained object if <code>
- * __any != nullptr && __any.type() == typeid(_ValueType)
- * </code>, otherwise a null pointer.
- */
template<typename _ValueType>
inline _ValueType* any_cast(any* __any) noexcept
{
return static_cast<_ValueType*>(__any_caster<_ValueType>(__any));
return nullptr;
}
+ // @}
#ifdef __GXX_RTTI
template<typename _Tp, typename _Alloc>
_GLIBCXX_BEGIN_NAMESPACE_VERSION
/**
- * @class basic_string_view <string_view>
+ * @class basic_string_view <experimental/string_view>
* @brief A non-owning reference to a string.
*
* @ingroup strings
* @ingroup sequences
+ * @ingroup experimental
*
* @tparam _CharT Type of character
* @tparam _Traits Traits for character type, defaults to
#endif
/**
- * The %bitset class represents a @e fixed-size sequence of bits.
+ * @class bitset <bitset>
*
- * @ingroup containers
+ * @brief The %bitset class represents a @e fixed-size sequence of bits.
+ * @ingroup utilities
*
* (Note that %bitset does @e not meet the formal requirements of a
* <a href="tables.html#65">container</a>. Mainly, it lacks iterators.)
_GLIBCXX_BEGIN_NAMESPACE_VERSION
/**
- * Dynamic Bitset.
+ * @defgroup dynamic_bitset Dynamic Bitset.
+ * @ingroup extensions
*
- * See N2050,
- * Proposal to Add a Dynamically Sizeable Bitset to the Standard Library.
+ * @{
*/
-namespace __detail
-{
-
-template<typename T>
-class _Bool2UChar
-{
- typedef T type;
-};
-
-template<>
-class _Bool2UChar<bool>
-{
-public:
- typedef unsigned char type;
-};
-
-}
/**
* Base class, general case.
/**
* @brief The %dynamic_bitset class represents a sequence of bits.
*
- * @ingroup containers
- *
- * (Note that %dynamic_bitset does @e not meet the formal
- * requirements of a <a href="tables.html#65">container</a>.
- * Mainly, it lacks iterators.)
- *
- * The template argument, @a Nb, may be any non-negative number,
- * specifying the number of bits (e.g., "0", "12", "1024*1024").
+ * See N2050,
+ * Proposal to Add a Dynamically Sizeable Bitset to the Standard Library.
*
* In the general unoptimized case, storage is allocated in
* word-sized blocks. Let B be the number of bits in a word, then
* int main()
* {
* long a = 'a';
- * dynamic_bitset b(a);
+ * dynamic_bitset<> b(a);
*
* cout << "b('a') is " << b << endl;
*
* }
* @endcode
*
- * Also see:
- * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt12ch33s02.html
- * for a description of extensions.
- *
* Most of the actual code isn't contained in %dynamic_bitset<>
* itself, but in the base class __dynamic_bitset_base. The base
* class works with whole words, not with individual bits. This
}
//@}
- /**
- * @defgroup Global I/O operators for bitsets.
- * @{
- * @brief Global I/O operators for bitsets.
- *
- * Direct I/O between streams and bitsets is supported. Output is
- * straightforward. Input will skip whitespace and only accept '0'
- * and '1' characters. The %dynamic_bitset will grow as necessary
- * to hold the string of bits.
- */
+ /// Stream output operator for dynamic_bitset.
template <typename _CharT, typename _Traits,
typename _WordT, typename _Alloc>
inline std::basic_ostream<_CharT, _Traits>&
}
/**
- * @defgroup Global I/O operators for bitsets.
- * @{
- * @brief Global I/O operators for bitsets.
+ * @brief Stream input operator for dynamic_bitset.
+ * @ingroup dynamic_bitset
*
- * Direct I/O between streams and bitsets is supported. Output is
- * straightforward. Input will skip whitespace and only accept '0'
- * and '1' characters. The %dynamic_bitset will grow as necessary
- * to hold the string of bits.
+ * Input will skip whitespace and only accept '0' and '1' characters.
+ * The %dynamic_bitset will grow as necessary to hold the string of bits.
*/
template<typename _CharT, typename _Traits,
typename _WordT, typename _Alloc>
__is.setstate(__state);
return __is;
}
- /**
- * @}
- */
_GLIBCXX_END_NAMESPACE_VERSION
} // tr2