+2012-05-02 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/44015
+ * include/bits/basic_ios.h: Add tparam markup for
+ * doxygen. include/bits/basic_string.h: Same.
+ * include/bits/forward_list.h: Same.
+ * include/bits/stl_bvector.h: Same.
+ * include/bits/stl_deque.h: Same.
+ * include/bits/stl_list.h: Same. include/bits/stl_map.h:
+ * Same. include/bits/stl_multimap.h: Same.
+ * include/bits/stl_multiset.h: Same.
+ * include/bits/stl_pair.h: Same.
+ * include/bits/stl_queue.h: Same.
+ * include/bits/stl_set.h: Same.
+ * include/bits/stl_stack.h: Same.
+ * include/bits/stl_vector.h: Same.
+ * include/bits/unordered_map.h: Same.
+ * include/bits/unordered_set.h: Same. include/std/array:
+ * Same. include/std/atomic: Same. include/std/fstream:
+ * Same. include/std/istream: Same. include/std/ostream:
+ * Same. include/std/sstream: Same.
+ * include/std/streambuf: Same.
+ * testsuite/23_containers/deque/requirements/dr438/*:
+ Adjust line numbers.
+ * testsuite/23_containers/list/requirements/dr438/*: Same.
+ * testsuite/23_containers/vector/requirements/dr438/*: Same.
+
2012-05-02 DJ Delorie <dj@redhat.com>
* crossconfig.m4: Since we know that all TPF builds are cross-
// Iostreams base classes -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-// 2006, 2007, 2008, 2009, 2010, 2011
+// 2006, 2007, 2008, 2009, 2010, 2011, 2012
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
return *__f;
}
- // 27.4.5 Template class basic_ios
/**
- * @brief Virtual base class for all stream classes.
+ * @brief Template class basic_ios, virtual base class for all
+ * stream classes.
* @ingroup io
*
+ * @tparam _CharT Type of character stream.
+ * @tparam _Traits Traits for character type, defaults to
+ * char_traits<_CharT>.
+ *
* Most of the member functions called dispatched on stream objects
* (e.g., @c std::cout.foo(bar);) are consolidated in this class.
*/
* @ingroup strings
* @ingroup sequences
*
+ * @tparam _CharT Type of character
+ * @tparam _Traits Traits for character type, defaults to
+ * char_traits<_CharT>.
+ * @tparam _Alloc Allocator type, defaults to allocator<_CharT>.
+ *
* Meets the requirements of a <a href="tables.html#65">container</a>, a
* <a href="tables.html#66">reversible container</a>, and a
* <a href="tables.html#67">sequence</a>. Of the
*
* @ingroup sequences
*
+ * @tparam _Tp Type of element.
+ * @tparam _Alloc Allocator type, defaults to allocator<_Tp>.
+ *
* Meets the requirements of a <a href="tables.html#65">container</a>, a
* <a href="tables.html#67">sequence</a>, including the
* <a href="tables.html#68">optional sequence requirements</a> with the
* @brief A specialization of vector for booleans which offers fixed time
* access to individual elements in any order.
*
+ * @ingroup sequences
+ *
+ * @tparam _Alloc Allocator type.
+ *
* Note that vector<bool> does not actually meet the requirements for being
* a container. This is because the reference and pointer types are not
* really references and pointers to bool. See DR96 for details. @see
* vector for function documentation.
*
- * @ingroup sequences
- *
* In some terminology a %vector can be described as a dynamic
* C-style array, it offers fast and efficient access to individual
* elements in any order and saves the user from worrying about
*
* @ingroup sequences
*
+ * @tparam _Tp Type of element.
+ * @tparam _Alloc Allocator type, defaults to allocator<_Tp>.
+ *
* Meets the requirements of a <a href="tables.html#65">container</a>, a
* <a href="tables.html#66">reversible container</a>, and a
* <a href="tables.html#67">sequence</a>, including the
*
* @ingroup sequences
*
+ * @tparam _Tp Type of element.
+ * @tparam _Alloc Allocator type, defaults to allocator<_Tp>.
+ *
* Meets the requirements of a <a href="tables.html#65">container</a>, a
* <a href="tables.html#66">reversible container</a>, and a
* <a href="tables.html#67">sequence</a>, including the
*
* @ingroup associative_containers
*
+ * @tparam _Key Type of key objects.
+ * @tparam _Tp Type of mapped objects.
+ * @tparam _Compare Comparison function object type, defaults to less<_Key>.
+ * @tparam _Alloc Allocator type, defaults to
+ * allocator<pair<const _Key, _Tp>.
+ *
* Meets the requirements of a <a href="tables.html#65">container</a>, a
* <a href="tables.html#66">reversible container</a>, and an
* <a href="tables.html#69">associative container</a> (using unique keys).
*
* @ingroup associative_containers
*
+ * @tparam _Key Type of key objects.
+ * @tparam _Tp Type of mapped objects.
+ * @tparam _Compare Comparison function object type, defaults to less<_Key>.
+ * @tparam _Alloc Allocator type, defaults to
+ * allocator<pair<const _Key, _Tp>.
+ *
* Meets the requirements of a <a href="tables.html#65">container</a>, a
* <a href="tables.html#66">reversible container</a>, and an
* <a href="tables.html#69">associative container</a> (using equivalent
*
* @ingroup associative_containers
*
+ *
+ * @tparam _Key Type of key objects.
+ * @tparam _Compare Comparison function object type, defaults to less<_Key>.
+ * @tparam _Alloc Allocator type, defaults to allocator<_Key>.
+ *
* Meets the requirements of a <a href="tables.html#65">container</a>, a
* <a href="tables.html#66">reversible container</a>, and an
* <a href="tables.html#69">associative container</a> (using equivalent
struct _Index_tuple;
#endif
- /// Struct holding two objects of arbitrary type.
+ /**
+ * @brief Struct holding two objects of arbitrary type.
+ *
+ * @tparam _T1 Type of first object.
+ * @tparam _T2 Type of second object.
+ */
template<class _T1, class _T2>
struct pair
{
// Queue implementation -*- C++ -*-
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-// 2010, 2011
+// 2010, 2011, 2012
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
*
* @ingroup sequences
*
+ * @tparam _Tp Type of element.
+ * @tparam _Sequence Type of underlying sequence, defaults to deque<_Tp>.
+ *
* Meets many of the requirements of a
* <a href="tables.html#65">container</a>,
* but does not define anything to do with iterators. Very few of the
*
* @ingroup sequences
*
+ * @tparam _Tp Type of element.
+ * @tparam _Sequence Type of underlying sequence, defaults to vector<_Tp>.
+ * @tparam _Compare Comparison function object type, defaults to
+ * less<_Sequence::value_type>.
+ *
* This is not a true container, but an @e adaptor. It holds
* another container, and provides a wrapper interface to that
* container. The wrapper is what enforces priority-based sorting
*
* @ingroup associative_containers
*
+ * @tparam _Key Type of key objects.
+ * @tparam _Compare Comparison function object type, defaults to less<_Key>.
+ * @tparam _Alloc Allocator type, defaults to allocator<_Key>.
+ *
* Meets the requirements of a <a href="tables.html#65">container</a>, a
* <a href="tables.html#66">reversible container</a>, and an
* <a href="tables.html#69">associative container</a> (using unique keys).
*
* Sets support bidirectional iterators.
*
- * @tparam _Key Type of key objects.
- * @tparam _Compare Comparison function object type, defaults to less<Key>.
- * @tparam _Alloc Allocator type, defaults to allocator<Key>.
- *
* The private tree data is declared exactly the same way for set and
* multiset; the distinction is made entirely in how the tree functions are
* called (*_unique versus *_equal, same as the standard).
// Stack implementation -*- C++ -*-
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-// 2010, 2011
+// 2010, 2011, 2012
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
*
* @ingroup sequences
*
+ * @tparam _Tp Type of element.
+ * @tparam _Sequence Type of underlying sequence, defaults to deque<_Tp>.
+ *
* Meets many of the requirements of a
* <a href="tables.html#65">container</a>,
* but does not define anything to do with iterators. Very few of the
*
* @ingroup sequences
*
+ * @tparam _Tp Type of element.
+ * @tparam _Alloc Allocator type, defaults to allocator<_Tp>.
+ *
* Meets the requirements of a <a href="tables.html#65">container</a>, a
* <a href="tables.html#66">reversible container</a>, and a
* <a href="tables.html#67">sequence</a>, including the
*
* @ingroup unordered_associative_containers
*
- * Meets the requirements of a <a href="tables.html#65">container</a>, and
- * <a href="tables.html#xx">unordered associative container</a>
- *
* @tparam _Key Type of key objects.
* @tparam _Tp Type of mapped objects.
* @tparam _Hash Hashing function object type, defaults to hash<_Value>.
* to equal_to<_Value>.
* @tparam _Alloc Allocator type, defaults to allocator<_Key>.
*
+ * Meets the requirements of a <a href="tables.html#65">container</a>, and
+ * <a href="tables.html#xx">unordered associative container</a>
+ *
* The resulting value type of the container is std::pair<const _Key, _Tp>.
*
* Base is _Hashtable, dispatched at compile time via template
*
* @ingroup unordered_associative_containers
*
- * Meets the requirements of a <a href="tables.html#65">container</a>, and
- * <a href="tables.html#xx">unordered associative container</a>
- *
* @tparam _Key Type of key objects.
* @tparam _Tp Type of mapped objects.
* @tparam _Hash Hashing function object type, defaults to hash<_Value>.
* to equal_to<_Value>.
* @tparam _Alloc Allocator type, defaults to allocator<_Key>.
*
+ * Meets the requirements of a <a href="tables.html#65">container</a>, and
+ * <a href="tables.html#xx">unordered associative container</a>
+ *
* The resulting value type of the container is std::pair<const _Key, _Tp>.
*
* Base is _Hashtable, dispatched at compile time via template
*
* @ingroup unordered_associative_containers
*
- * Meets the requirements of a <a href="tables.html#65">container</a>, and
- * <a href="tables.html#xx">unordered associative container</a>
- *
* @tparam _Value Type of key objects.
* @tparam _Hash Hashing function object type, defaults to hash<_Value>.
*
* @tparam _Alloc Allocator type, defaults to allocator<_Key>.
*
+ * Meets the requirements of a <a href="tables.html#65">container</a>, and
+ * <a href="tables.html#xx">unordered associative container</a>
+ *
* Base is _Hashtable, dispatched at compile time via template
* alias __uset_hashtable.
*/
*
* @ingroup unordered_associative_containers
*
- * Meets the requirements of a <a href="tables.html#65">container</a>, and
- * <a href="tables.html#xx">unordered associative container</a>
- *
* @tparam _Value Type of key objects.
* @tparam _Hash Hashing function object type, defaults to hash<_Value>.
* @tparam _Pred Predicate function object type, defaults
* to equal_to<_Value>.
* @tparam _Alloc Allocator type, defaults to allocator<_Key>.
*
+ * Meets the requirements of a <a href="tables.html#65">container</a>, and
+ * <a href="tables.html#xx">unordered associative container</a>
+ *
* Base is _Hashtable, dispatched at compile time via template
* alias __umset_hashtable.
*/
*
* Sets support random access iterators.
*
- * @param Tp Type of element. Required to be a complete type.
- * @param N Number of elements.
+ * @tparam Tp Type of element. Required to be a complete type.
+ * @tparam N Number of elements.
*/
template<typename _Tp, std::size_t _Nm>
struct array
// -*- C++ -*- header.
-// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
};
- /// atomic
- /// 29.4.3, Generic atomic type, primary class template.
+ /**
+ * @brief Generic atomic type, primary class template.
+ *
+ * @tparam _Tp Type to be made atomic, must be trivally copyable.
+ */
template<typename _Tp>
struct atomic
{
// File based streams -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-// 2006, 2007, 2008, 2009, 2010, 2011
+// 2006, 2007, 2008, 2009, 2010, 2011, 2012
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
* @brief The actual work of input and output (for files).
* @ingroup io
*
+ * @tparam _CharT Type of character stream.
+ * @tparam _Traits Traits for character type, defaults to
+ * char_traits<_CharT>.
+ *
* This class associates both its input and output sequence with an
* external disk file, and maintains a joint file position for both
* sequences. Many of its semantics are described in terms of similar
* behavior in the Standard C Library's @c FILE streams.
+ *
+ * Requirements on traits_type, specific to this class:
+ * - traits_type::pos_type must be fpos<traits_type::state_type>
+ * - traits_type::off_type must be streamoff
+ * - traits_type::state_type must be Assignable and DefaultConstructible,
+ * - traits_type::state_type() must be the initial state for codecvt.
*/
- // Requirements on traits_type, specific to this class:
- // traits_type::pos_type must be fpos<traits_type::state_type>
- // traits_type::off_type must be streamoff
- // traits_type::state_type must be Assignable and DefaultConstructible,
- // and traits_type::state_type() must be the initial state for codecvt.
template<typename _CharT, typename _Traits>
class basic_filebuf : public basic_streambuf<_CharT, _Traits>
{
* @brief Controlling input for files.
* @ingroup io
*
+ * @tparam _CharT Type of character stream.
+ * @tparam _Traits Traits for character type, defaults to
+ * char_traits<_CharT>.
+ *
* This class supports reading from named files, using the inherited
* functions from std::basic_istream. To control the associated
* sequence, an instance of std::basic_filebuf is used, which this page
* @brief Controlling output for files.
* @ingroup io
*
+ * @tparam _CharT Type of character stream.
+ * @tparam _Traits Traits for character type, defaults to
+ * char_traits<_CharT>.
+ *
* This class supports reading from named files, using the inherited
* functions from std::basic_ostream. To control the associated
* sequence, an instance of std::basic_filebuf is used, which this page
* @brief Controlling input and output for files.
* @ingroup io
*
+ * @tparam _CharT Type of character stream.
+ * @tparam _Traits Traits for character type, defaults to
+ * char_traits<_CharT>.
+ *
* This class supports reading from and writing to named files, using
* the inherited functions from std::basic_iostream. To control the
* associated sequence, an instance of std::basic_filebuf is used, which
// Input streams -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-// 2006, 2007, 2008, 2009, 2010, 2011
+// 2006, 2007, 2008, 2009, 2010, 2011, 2012
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
* @brief Template class basic_istream.
* @ingroup io
*
+ * @tparam _CharT Type of character stream.
+ * @tparam _Traits Traits for character type, defaults to
+ * char_traits<_CharT>.
+ *
* This is the base class for all input streams. It provides text
* formatting of all builtin types, and communicates with any class
* derived from basic_streambuf to do the actual input.
* @brief Template class basic_iostream
* @ingroup io
*
+ * @tparam _CharT Type of character stream.
+ * @tparam _Traits Traits for character type, defaults to
+ * char_traits<_CharT>.
+ *
* This class multiply inherits from the input and output stream classes
* simply to provide a single interface.
*/
// Output streams -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-// 2006, 2007, 2008, 2009, 2010, 2011
+// 2006, 2007, 2008, 2009, 2010, 2011, 2012
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
* @brief Template class basic_ostream.
* @ingroup io
*
+ * @tparam _CharT Type of character stream.
+ * @tparam _Traits Traits for character type, defaults to
+ * char_traits<_CharT>.
+ *
* This is the base class for all output streams. It provides text
* formatting of all builtin types, and communicates with any class
* derived from basic_streambuf to do the actual output.
// String based streams -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-// 2006, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+// 2006, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
* @brief The actual work of input and output (for std::string).
* @ingroup io
*
+ * @tparam _CharT Type of character stream.
+ * @tparam _Traits Traits for character type, defaults to
+ * char_traits<_CharT>.
+ * @tparam _Alloc Allocator type, defaults to allocator<_CharT>.
+ *
* This class associates either or both of its input and output sequences
* with a sequence of characters, which can be initialized from, or made
* available as, a @c std::basic_string. (Paraphrased from [27.7.1]/1.)
* @brief Controlling input for std::string.
* @ingroup io
*
+ * @tparam _CharT Type of character stream.
+ * @tparam _Traits Traits for character type, defaults to
+ * char_traits<_CharT>.
+ * @tparam _Alloc Allocator type, defaults to allocator<_CharT>.
+ *
* This class supports reading from objects of type std::basic_string,
* using the inherited functions from std::basic_istream. To control
* the associated sequence, an instance of std::basic_stringbuf is used,
* @brief Controlling output for std::string.
* @ingroup io
*
+ * @tparam _CharT Type of character stream.
+ * @tparam _Traits Traits for character type, defaults to
+ * char_traits<_CharT>.
+ * @tparam _Alloc Allocator type, defaults to allocator<_CharT>.
+ *
* This class supports writing to objects of type std::basic_string,
* using the inherited functions from std::basic_ostream. To control
* the associated sequence, an instance of std::basic_stringbuf is used,
* @brief Controlling input and output for std::string.
* @ingroup io
*
+ * @tparam _CharT Type of character stream.
+ * @tparam _Traits Traits for character type, defaults to
+ * char_traits<_CharT>.
+ * @tparam _Alloc Allocator type, defaults to allocator<_CharT>.
+ *
* This class supports reading from and writing to objects of type
* std::basic_string, using the inherited functions from
* std::basic_iostream. To control the associated sequence, an instance
// Stream buffer classes -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-// 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+// 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
* @brief The actual work of input and output (interface).
* @ingroup io
*
+ * @tparam _CharT Type of character stream.
+ * @tparam _Traits Traits for character type, defaults to
+ * char_traits<_CharT>.
+ *
* This is a base class. Derived stream buffers each control a
* pair of character sequences: one for input, and one for output.
*
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1696 }
+// { dg-error "no matching" "" { target *-*-* } 1699 }
#include <deque>
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1629 }
+// { dg-error "no matching" "" { target *-*-* } 1632 }
#include <deque>
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1629 }
+// { dg-error "no matching" "" { target *-*-* } 1632 }
#include <deque>
#include <utility>
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1780 }
+// { dg-error "no matching" "" { target *-*-* } 1783 }
#include <deque>
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1568 }
+// { dg-error "no matching" "" { target *-*-* } 1571 }
#include <list>
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1524 }
+// { dg-error "no matching" "" { target *-*-* } 1527 }
#include <list>
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1524 }
+// { dg-error "no matching" "" { target *-*-* } 1527 }
#include <list>
#include <utility>
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1524 }
+// { dg-error "no matching" "" { target *-*-* } 1527 }
#include <list>
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1233 }
+// { dg-error "no matching" "" { target *-*-* } 1236 }
#include <vector>
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1163 }
+// { dg-error "no matching" "" { target *-*-* } 1166 }
#include <vector>
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1163 }
+// { dg-error "no matching" "" { target *-*-* } 1166 }
#include <vector>
#include <utility>
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1274 }
+// { dg-error "no matching" "" { target *-*-* } 1277 }
#include <vector>