aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/docs/html
diff options
context:
space:
mode:
authorPhil Edwards <pme@gcc.gnu.org>2001-04-03 00:26:58 +0000
committerPhil Edwards <pme@gcc.gnu.org>2001-04-03 00:26:58 +0000
commit30a20a1ee0168656d375ea2333e14b46937bdc6a (patch)
treebafb595dea147deb7ac77eeb4fcdb31ddddbc477 /libstdc++-v3/docs/html
parent9f4a318c36db4565f126e4428ea856460437b27d (diff)
downloadgcc-30a20a1ee0168656d375ea2333e14b46937bdc6a.zip
gcc-30a20a1ee0168656d375ea2333e14b46937bdc6a.tar.gz
gcc-30a20a1ee0168656d375ea2333e14b46937bdc6a.tar.bz2
New concept checking implementation.
2001-04-02 Phil Edwards <pme@sources.redhat.com> New concept checking implementation. * docs/html/19_diagnostics/howto.html: Document. * docs/html/17_intro/concept_check.diff: New file, for reference. * include/bits/boost_concept_check.h: New file from Boost. * include/bits/c++config: Update comments. * include/bits/concept_check.h: New file. * include/bits/concept_checks.h: Removed. * include/bits/container_concepts.h: Removed. * include/bits/sequence_concepts.h: Removed. * include/bits/stl_iterator_base.h: Removed; split into... * include/bits/stl_iterator_base_funcs.h: ...this new file... * include/bits/stl_iterator_base_types.h: ...and this new file. * include/bits/sbuf_iter.h: Update to use new implementation. * include/bits/std_iterator.h: Likewise. * include/bits/std_memory.h: Likewise. * include/bits/stl_algo.h: Likewise. * include/bits/stl_algobase.h: Likewise. * include/bits/stl_construct.h: Likewise. * include/bits/stl_deque.h: Likewise. * include/bits/stl_heap.h: Likewise. * include/bits/stl_list.h: Likewise. * include/bits/stl_map.h: Likewise. * include/bits/stl_multimap.h: Likewise. * include/bits/stl_multiset.h: Likewise. * include/bits/stl_numeric.h: Likewise. * include/bits/stl_queue.h: Likewise. * include/bits/stl_set.h: Likewise. * include/bits/stl_stack.h: Likewise. * include/bits/stl_uninitialized.h: Likewise. * include/bits/stl_vector.h: Likewise. * include/ext/hash_map: Likewise. * include/ext/hash_set: Likewise. * include/ext/slist: Likewise. * include/ext/stl_hashtable.h: Likewise. * src/Makefile.am (base_headers): Update list of headers. * Makefile.in: Regenerated. * src/Makefile.in: Regenerated. * libio/Makefile.in: Regenerated. * libmath/Makefile.in: Regenerated. * libsupc++/Makefile.in: Regenerated. * testsuite/Makefile.in: Regenerated. * docs/html/install.html: Update contact information. * docs/html/17_intro/howto.html: Ditto. * docs/html/18_support/howto.html: Ditto. * docs/html/20_util/howto.html: Ditto. * docs/html/21_strings/howto.html: Ditto. * docs/html/22_locale/howto.html: Ditto. * docs/html/23_containers/howto.html: Ditto. * docs/html/24_iterators/howto.html: Ditto. * docs/html/25_algorithms/howto.html: Ditto. * docs/html/26_numerics/howto.html: Ditto. * docs/html/27_io/howto.html: Ditto. * docs/html/faq/index.html: Ditto, plus info on new checking code. * docs/html/ext/howto.html: Ditto, plus info on new checking code. * docs/html/faq/index.txt: Regenerated. From-SVN: r41031
Diffstat (limited to 'libstdc++-v3/docs/html')
-rw-r--r--libstdc++-v3/docs/html/17_intro/concept_check.diff382
-rw-r--r--libstdc++-v3/docs/html/17_intro/howto.html7
-rw-r--r--libstdc++-v3/docs/html/18_support/howto.html7
-rw-r--r--libstdc++-v3/docs/html/19_diagnostics/howto.html89
-rw-r--r--libstdc++-v3/docs/html/20_util/howto.html7
-rw-r--r--libstdc++-v3/docs/html/21_strings/howto.html7
-rw-r--r--libstdc++-v3/docs/html/22_locale/howto.html7
-rw-r--r--libstdc++-v3/docs/html/23_containers/howto.html7
-rw-r--r--libstdc++-v3/docs/html/24_iterators/howto.html7
-rw-r--r--libstdc++-v3/docs/html/25_algorithms/howto.html7
-rw-r--r--libstdc++-v3/docs/html/26_numerics/howto.html7
-rw-r--r--libstdc++-v3/docs/html/27_io/howto.html7
-rw-r--r--libstdc++-v3/docs/html/ext/howto.html11
-rw-r--r--libstdc++-v3/docs/html/faq/index.html78
-rw-r--r--libstdc++-v3/docs/html/faq/index.txt25
-rw-r--r--libstdc++-v3/docs/html/install.html7
16 files changed, 507 insertions, 155 deletions
diff --git a/libstdc++-v3/docs/html/17_intro/concept_check.diff b/libstdc++-v3/docs/html/17_intro/concept_check.diff
new file mode 100644
index 0000000..afb17f5e
--- /dev/null
+++ b/libstdc++-v3/docs/html/17_intro/concept_check.diff
@@ -0,0 +1,382 @@
+
+Changes made while bringing boost/concept_check.hpp to v3's concept_check.h:
+
+1) File format changed from DOS to Unix.
+2) Boost config.hpp and other workaround files dropped (unneeded in g++ v3).
+3) Conditionally-compiled code depending on those "breakage" macros was
+ removed, or not, depending on the macro, so that the macros themselves
+ are gone. Since the same code would always be compiled, let's make it
+ easier on the reader and a few milliseconds faster for cpplib.
+4) Tests for NDEBUG were removed; if NDEBUG is defined, none of the checking
+ code will even be included.
+5) BOOST_CLASS_REQUIRES* changed to accept a namespace parameter.
+6) SameTypeConcept added (simple wrapper around existing code).
+7) An unused variable in OutputIteratorConcept was removed.
+
+At checkin, this was the exact diff, modulo the end-of-line character changes:
+
+
+--- concept_check.hpp.orig Sun Apr 1 08:59:46 2001
++++ boost_concept_check.h Mon Apr 2 18:56:41 2001
+@@ -5,20 +5,15 @@
+ // "as is" without express or implied warranty, and with no claim as
+ // to its suitability for any purpose.
+ //
++
++// GCC Note: based on version 1.12.0 of the Boost library.
+ #ifndef BOOST_CONCEPT_CHECKS_HPP
+ #define BOOST_CONCEPT_CHECKS_HPP
+
+-#include <boost/config.hpp>
+-#include <boost/iterator.hpp>
+-#include <boost/iterator.hpp>
+-#include <utility>
+-#include <boost/pending/limits.hpp>
+-
+-#if (__GNUC__) || defined(__KCC) || defined(__ghs) || defined(__MWERKS__)
+-#define BOOST_FPTR &
+-#else
+-#define BOOST_FPTR
+-#endif
++#pragma GCC system_header
++#include <bits/stl_iterator_base_types.h> // for traits and tags
++#include <utility> // for pair<>
++
+
+ namespace boost {
+
+@@ -27,80 +22,64 @@
+ template <class Concept>
+ void function_requires()
+ {
+-#if !defined(NDEBUG)
+- void (Concept::*x)() = BOOST_FPTR Concept::constraints;
++ void (Concept::*x)() = &Concept::constraints;
+ ignore_unused_variable_warning(x);
+-#endif
+ }
+
+-// The BOOST_CLASS_REQUIRES macros use function pointers as
+-// template parameters, which VC++ does not support.
+-
+-#if defined(BOOST_NO_FUNCTION_PTR_TEMPLATE_PARAMETERS)
+-
+-#define BOOST_CLASS_REQUIRES(type_var, concept)
+-#define BOOST_CLASS_REQUIRES2(type_var1, type_var2, concept)
+-#define BOOST_CLASS_REQUIRES3(type_var1, type_var2, type_var3, concept)
+-#define BOOST_CLASS_REQUIRES4(type_var1, type_var2, type_var3, type_var4, concept)
+
+-#else
+-
+-#define BOOST_CLASS_REQUIRES(type_var, concept) \
+- typedef void (concept <type_var>::* func##type_var##concept)(); \
++#define BOOST_CLASS_REQUIRES(type_var, ns, concept) \
++ typedef void (ns::concept <type_var>::* func##type_var##concept)(); \
+ template <func##type_var##concept _Tp1> \
+ struct concept_checking_##type_var##concept { }; \
+ typedef concept_checking_##type_var##concept< \
+- BOOST_FPTR concept <type_var>::constraints> \
++ &ns::concept <type_var>::constraints> \
+ concept_checking_typedef_##type_var##concept
+
+-#define BOOST_CLASS_REQUIRES2(type_var1, type_var2, concept) \
+- typedef void (concept <type_var1,type_var2>::* func##type_var1##type_var2##concept)(); \
++#define BOOST_CLASS_REQUIRES2(type_var1, type_var2, ns, concept) \
++ typedef void (ns::concept <type_var1,type_var2>::* func##type_var1##type_var2##concept)(); \
+ template <func##type_var1##type_var2##concept _Tp1> \
+ struct concept_checking_##type_var1##type_var2##concept { }; \
+ typedef concept_checking_##type_var1##type_var2##concept< \
+- BOOST_FPTR concept <type_var1,type_var2>::constraints> \
++ &ns::concept <type_var1,type_var2>::constraints> \
+ concept_checking_typedef_##type_var1##type_var2##concept
+
+-#define BOOST_CLASS_REQUIRES3(type_var1, type_var2, type_var3, concept) \
+- typedef void (concept <type_var1,type_var2,type_var3>::* func##type_var1##type_var2##type_var3##concept)(); \
++#define BOOST_CLASS_REQUIRES3(type_var1, type_var2, type_var3, ns, concept) \
++ typedef void (ns::concept <type_var1,type_var2,type_var3>::* func##type_var1##type_var2##type_var3##concept)(); \
+ template <func##type_var1##type_var2##type_var3##concept _Tp1> \
+ struct concept_checking_##type_var1##type_var2##type_var3##concept { }; \
+ typedef concept_checking_##type_var1##type_var2##type_var3##concept< \
+- BOOST_FPTR concept <type_var1,type_var2,type_var3>::constraints> \
++ &ns::concept <type_var1,type_var2,type_var3>::constraints> \
+ concept_checking_typedef_##type_var1##type_var2##type_var3##concept
+
+-#define BOOST_CLASS_REQUIRES4(type_var1, type_var2, type_var3, type_var4, concept) \
+- typedef void (concept <type_var1,type_var2,type_var3,type_var4>::* func##type_var1##type_var2##type_var3##type_var4##concept)(); \
++#define BOOST_CLASS_REQUIRES4(type_var1, type_var2, type_var3, type_var4, ns, concept) \
++ typedef void (ns::concept <type_var1,type_var2,type_var3,type_var4>::* func##type_var1##type_var2##type_var3##type_var4##concept)(); \
+ template <func##type_var1##type_var2##type_var3##type_var4##concept _Tp1> \
+ struct concept_checking_##type_var1##type_var2##type_var3##type_var4##concept { }; \
+ typedef concept_checking_##type_var1##type_var2##type_var3##type_var4##concept< \
+- BOOST_FPTR concept <type_var1,type_var2,type_var3,type_var4>::constraints> \
++ &ns::concept <type_var1,type_var2,type_var3,type_var4>::constraints> \
+ concept_checking_typedef_##type_var1##type_var2##type_var3##type_var4##concept
+
+
+-#endif
+-
+-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ template <class T, class U>
+ struct require_same { };
+
+ template <class T>
+ struct require_same<T,T> { typedef T type; };
+-#else
+-// This version does not perform checking, but will not do any harm.
+-template <class T, class U>
+-struct require_same { typedef T type; };
+-#endif
++
++ template <class T, class U>
++ struct SameTypeConcept
++ {
++ void constraints() {
++ typedef typename require_same<T, U>::type req;
++ }
++ };
+
+ template <class T>
+ struct IntegerConcept {
+ void constraints() {
+-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ errortype_must_be_an_integer_type();
+-#endif
+ }
+ };
+-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ template <> struct IntegerConcept<short> { void constraints() {} };
+ template <> struct IntegerConcept<unsigned short> { void constraints() {} };
+ template <> struct IntegerConcept<int> { void constraints() {} };
+@@ -108,32 +87,24 @@
+ template <> struct IntegerConcept<long> { void constraints() {} };
+ template <> struct IntegerConcept<unsigned long> { void constraints() {} };
+ // etc.
+-#endif
+
+ template <class T>
+ struct SignedIntegerConcept {
+ void constraints() {
+-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ errortype_must_be_a_signed_integer_type();
+-#endif
+ }
+ };
+-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ template <> struct SignedIntegerConcept<short> { void constraints() {} };
+ template <> struct SignedIntegerConcept<int> { void constraints() {} };
+ template <> struct SignedIntegerConcept<long> { void constraints() {} };
+ // etc.
+-#endif
+
+ template <class T>
+ struct UnsignedIntegerConcept {
+ void constraints() {
+-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ errortype_must_be_an_unsigned_integer_type();
+-#endif
+ }
+ };
+-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ template <> struct UnsignedIntegerConcept<unsigned short>
+ { void constraints() {} };
+ template <> struct UnsignedIntegerConcept<unsigned int>
+@@ -141,7 +112,6 @@
+ template <> struct UnsignedIntegerConcept<unsigned long>
+ { void constraints() {} };
+ // etc.
+-#endif
+
+ //===========================================================================
+ // Basic Concepts
+@@ -159,15 +129,11 @@
+ struct AssignableConcept
+ {
+ void constraints() {
+-#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
+ a = a; // require assignment operator
+-#endif
+ const_constraints(a);
+ }
+ void const_constraints(const TT& b) {
+-#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
+ a = b; // const required for argument to assignment
+-#endif
+ }
+ TT a;
+ };
+@@ -196,17 +162,13 @@
+ {
+ void constraints() {
+ TT b(a);
+-#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
+ a = a; // require assignment operator
+-#endif
+ const_constraints(a);
+ ignore_unused_variable_warning(b);
+ }
+ void const_constraints(const TT& b) {
+ TT c(b);
+-#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
+ a = b; // const required for argument to assignment
+-#endif
+ ignore_unused_variable_warning(c);
+ }
+ TT a;
+@@ -304,6 +266,9 @@
+ BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(-, SubtractOpConcept);
+ BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(%, ModOpConcept);
+
++#undef BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT
++#undef BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT
++
+ //===========================================================================
+ // Function Object Concepts
+
+@@ -318,7 +283,6 @@
+ };
+
+
+-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ template <class Func>
+ struct GeneratorConcept<Func,void>
+ {
+@@ -327,7 +291,6 @@
+ }
+ Func f;
+ };
+-#endif
+
+ template <class Func, class Return, class Arg>
+ struct UnaryFunctionConcept
+@@ -340,7 +303,6 @@
+ Return r;
+ };
+
+-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ template <class Func, class Arg>
+ struct UnaryFunctionConcept<Func, void, Arg> {
+ void constraints() {
+@@ -348,7 +310,6 @@
+ }
+ Func f;
+ };
+-#endif
+
+ template <class Func, class Return, class First, class Second>
+ struct BinaryFunctionConcept
+@@ -362,7 +323,6 @@
+ Return r;
+ };
+
+-#if !defined BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+ template <class Func, class First, class Second>
+ struct BinaryFunctionConcept<Func, void, First, Second>
+ {
+@@ -373,7 +333,6 @@
+ First first;
+ Second second;
+ };
+-#endif
+
+ template <class Func, class Arg>
+ struct UnaryPredicateConcept
+@@ -422,9 +381,7 @@
+ function_requires< AssignableConcept<TT> >();
+ function_requires< DefaultConstructibleConcept<TT> >();
+ function_requires< EqualityComparableConcept<TT> >();
+-#ifndef BOOST_NO_STD_ITERATOR_TRAITS
+ typedef typename std::iterator_traits<TT>::value_type V;
+-#endif
+ (void)*i; // require dereference operator
+ }
+ TT i;
+@@ -446,7 +403,6 @@
+ void constraints() {
+ function_requires< TrivialIteratorConcept<TT> >();
+ // require iterator_traits typedef's
+-#ifndef BOOST_NO_STD_ITERATOR_TRAITS
+ typedef typename std::iterator_traits<TT>::difference_type D;
+ function_requires< SignedIntegerConcept<D> >();
+ typedef typename std::iterator_traits<TT>::reference R;
+@@ -455,7 +411,6 @@
+ function_requires< ConvertibleConcept<
+ typename std::iterator_traits<TT>::iterator_category,
+ std::input_iterator_tag> >();
+-#endif
+ ++i; // require preincrement operator
+ i++; // require postincrement operator
+ }
+@@ -471,7 +426,7 @@
+ i++; // require postincrement operator
+ *i++ = t; // require postincrement and assignment
+ }
+- TT i, j;
++ TT i;
+ ValueT t;
+ };
+
+@@ -480,14 +435,12 @@
+ {
+ void constraints() {
+ function_requires< InputIteratorConcept<TT> >();
+-#ifndef BOOST_NO_STD_ITERATOR_TRAITS
+ function_requires< ConvertibleConcept<
+ typename std::iterator_traits<TT>::iterator_category,
+ std::forward_iterator_tag> >();
+ typedef typename std::iterator_traits<TT>::reference reference;
+ reference r = *i;
+ ignore_unused_variable_warning(r);
+-#endif
+ }
+ TT i;
+ };
+@@ -507,11 +460,9 @@
+ {
+ void constraints() {
+ function_requires< ForwardIteratorConcept<TT> >();
+-#ifndef BOOST_NO_STD_ITERATOR_TRAITS
+ function_requires< ConvertibleConcept<
+ typename std::iterator_traits<TT>::iterator_category,
+ std::bidirectional_iterator_tag> >();
+-#endif
+ --i; // require predecrement operator
+ i--; // require postdecrement operator
+ }
+@@ -536,12 +487,10 @@
+ void constraints() {
+ function_requires< BidirectionalIteratorConcept<TT> >();
+ function_requires< ComparableConcept<TT> >();
+-#ifndef BOOST_NO_STD_ITERATOR_TRAITS
+ function_requires< ConvertibleConcept<
+ typename std::iterator_traits<TT>::iterator_category,
+ std::random_access_iterator_tag> >();
+ typedef typename std::iterator_traits<TT>::reference R;
+-#endif
+
+ i += n; // require assignment addition operator
+ i = i + n; i = n + i; // require addition with difference type
+@@ -552,11 +501,7 @@
+ }
+ TT a, b;
+ TT i, j;
+-#ifndef BOOST_NO_STD_ITERATOR_TRAITS
+ typename std::iterator_traits<TT>::difference_type n;
+-#else
+- std::ptrdiff_t n;
+-#endif
+ };
+
+ template <class TT>
+@@ -568,11 +513,7 @@
+ i[n] = *i; // require element access and assignment
+ }
+ TT i;
+-#ifndef BOOST_NO_STD_ITERATOR_TRAITS
+ typename std::iterator_traits<TT>::difference_type n;
+-#else
+- std::ptrdiff_t n;
+-#endif
+ };
+
+ //===========================================================================
+
diff --git a/libstdc++-v3/docs/html/17_intro/howto.html b/libstdc++-v3/docs/html/17_intro/howto.html
index 707d04d..ae568d4 100644
--- a/libstdc++-v3/docs/html/17_intro/howto.html
+++ b/libstdc++-v3/docs/html/17_intro/howto.html
@@ -8,7 +8,7 @@
<META NAME="GENERATOR" CONTENT="vi and eight fingers">
<TITLE>libstdc++-v3 HOWTO: Chapter 17</TITLE>
<LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.6 2000/12/03 23:47:47 jsm28 Exp $ -->
+<!-- $Id: howto.html,v 1.1 2000/12/10 04:03:09 pme Exp $ -->
</HEAD>
<BODY>
@@ -144,9 +144,8 @@
<HR>
<P CLASS="fineprint"><EM>
Comments and suggestions are welcome, and may be sent to
-<A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or
-<A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>.
-<BR> $Id: howto.html,v 1.6 2000/12/03 23:47:47 jsm28 Exp $
+<A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
+<BR> $Id: howto.html,v 1.1 2000/12/10 04:03:09 pme Exp $
</EM></P>
diff --git a/libstdc++-v3/docs/html/18_support/howto.html b/libstdc++-v3/docs/html/18_support/howto.html
index 8dbc96c..f2b5d88 100644
--- a/libstdc++-v3/docs/html/18_support/howto.html
+++ b/libstdc++-v3/docs/html/18_support/howto.html
@@ -8,7 +8,7 @@
<META NAME="GENERATOR" CONTENT="vi and eight fingers">
<TITLE>libstdc++-v3 HOWTO: Chapter 18</TITLE>
<LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.7 2000/12/03 23:47:47 jsm28 Exp $ -->
+<!-- $Id: howto.html,v 1.1 2000/12/10 04:04:54 pme Exp $ -->
</HEAD>
<BODY>
@@ -259,9 +259,8 @@
<HR>
<P CLASS="fineprint"><EM>
Comments and suggestions are welcome, and may be sent to
-<A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or
-<A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>.
-<BR> $Id: howto.html,v 1.7 2000/12/03 23:47:47 jsm28 Exp $
+<A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
+<BR> $Id: howto.html,v 1.1 2000/12/10 04:04:54 pme Exp $
</EM></P>
diff --git a/libstdc++-v3/docs/html/19_diagnostics/howto.html b/libstdc++-v3/docs/html/19_diagnostics/howto.html
index 7b072ea..26ba4cd 100644
--- a/libstdc++-v3/docs/html/19_diagnostics/howto.html
+++ b/libstdc++-v3/docs/html/19_diagnostics/howto.html
@@ -8,7 +8,7 @@
<META NAME="GENERATOR" CONTENT="vi and eight fingers">
<TITLE>libstdc++-v3 HOWTO: Chapter 19</TITLE>
<LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.1 2000/12/10 04:04:54 pme Exp $ -->
+<!-- $Id: howto.html,v 1.2 2001/03/25 00:01:56 pme Exp $ -->
</HEAD>
<BODY>
@@ -26,7 +26,7 @@
<UL>
<LI><A HREF="#1">Adding data to exceptions</A>
<LI><A HREF="#2">Exception class hierarchy diagram</A>
- <LI><A HREF="#3">Concept checkers</A>
+ <LI><A HREF="#3">Concept checkers -- <STRONG>new and improved!</STRONG></A>
</UL>
<HR>
@@ -67,58 +67,44 @@
</P>
<HR>
-<H2><A NAME="3">Concept checkers</A></H2>
- <P>First the good news, then the bad news.</P>
- <P><STRONG>Good news:</STRONG> As part of their 3.3 release, SGI
- added some nifty macros which
- perform assertions on type properties. For example, the Standard
- requires that types passed as template parameters to <TT>vector</TT>
- be &quot;Assignable&quot; (which means what you think it means).
+<H2><A NAME="3">Concept checkers -- <STRONG>new and improved!</STRONG></A></H2>
+ <P>Better taste! Less fat! Literally!</P>
+ <P>In 1999, SGI added <EM>concept checkers</EM> to their implementation
+ of the STL: code which checked the template parameters of
+ instantiated pieces of the STL, in order to insure that the parameters
+ being used met the requirements of the standard. For example,
+ the Standard requires that types passed as template parameters to
+ <TT>vector</TT> be &quot;Assignable&quot; (which means what you think
+ it means). The checking was done during compilation, and none of
+ the code was executed at runtime.
</P>
- <P>The concept checkers allow the source code for <TT>vector</TT> to
- declare
- <PRE>
- __STL_CLASS_REQUIRES(_Tp, _Assignable);
- </PRE>inside the template. <TT>_Tp</TT> is the element type of the
- vector, and <TT>_Assignable</TT> is the concept to be checked (it is
- defined in some back-end header files). When you instantiate
- <TT>vector&lt;MyType&gt;</TT>, compile-time checking can be done on
- whether MyType meets the requirements for vectors.
+ <P>Unfortunately, the size of the compiler files grew significantly
+ as a result. The checking code itself was cumbersome. And bugs
+ were found in it on more than one occasion.
</P>
- <P>Most (all?) of the containers and sequences are capable of performing
- concept checking during compilation, not just vector.
+ <P>The primary author of the checking code, Jeremy Siek, had already
+ started work on a replcement implementation. The new code has been
+ formally reviewed and accepted into
+ <A HREF="http://www.boost.org/libs/concept_check/concept_check.htm">the
+ Boost libraries</A>, and we are pleased to incorporate it into the
+ GNU C++ library.
</P>
- <P>If a concept is violated (thus causing a compilation failure), the
- error messages printed by the compiler will be of the form
- <PRE>
- _STL_ERROR::__<EM>foo</EM>_violation
- </PRE> where <EM>foo</EM> is a description of the precise violation.
- For example, if a type is required to support the preincrement
- operator but doesn't, then you will see
- _STL_ERROR::__postincrement_operator_requirement_violation, which
- should give you a hint as to the nature of the problem.
+ <P>The new version imposes a much smaller space overhead on the generated
+ object file. The checks are also cleaner and easier to read and
+ understand.
</P>
- <P>Other names might be seen for more specific errors, for example,
- _ERROR_IN_STL_CONTAINER::__begin_iterator_accessor_requirement_violation.
+ <P>Concept checking can be disabled when you build your code, for example,
+ to save space during a production build. Just define (via -D or
+ #define) any of the macros
+ <TT>_GLIBCPP_NO_CONCEPT_CHECKS (yes, with the leading underscore),
+ <TT>_STL_NO_CONCEPT_CHECKS</TT> (also with the leading underscore),
+ or <TT>NDEBUG</TT>. The first macro is specifically for this
+ feature, the second is the disabling macro for the replaced SGI
+ version (some code may assume SGI's version is in use), and the third
+ is the usual macro to disable <TT>assert()</TT>, which is often turned
+ off for production builds.
</P>
- <P>You will probably also see other errors as the malformed code is
- actually used. The concept checking error messages should be printed
- before the others, so start at the top and work your way down.
- </P>
- <P><STRONG>Bad news:</STRONG> The current checking code is somewhat
- messy. It results in no runtime overhead, but there is a space
- penalty (sometimes a very large one) in the generated code. And the
- code itself has bugs.
- </P>
- <P>Concept checking can be disabled when you build your code. Just
- define (via -D or #define) the macro
- <TT>_STL_NO_CONCEPT_CHECKS</TT> (yes, with the leading underscore).
- In fact, this may already be defined in the library by default,
- depending on what decision we come to.
- </P>
- <P><STRONG>More good news:</STRONG> Replacement code has already been
- written by the same author of the original code. It's available at
- Boost and we hope to integrate it into the library.
+
<P>Return <A HREF="#top">to top of page</A> or
<A HREF="../faq/index.html">to the FAQ</A>.
</P>
@@ -129,9 +115,8 @@
<HR>
<P CLASS="fineprint"><EM>
Comments and suggestions are welcome, and may be sent to
-<A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or
-<A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>.
-<BR> $Id: howto.html,v 1.1 2000/12/10 04:04:54 pme Exp $
+<A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
+<BR> $Id: howto.html,v 1.2 2001/03/25 00:01:56 pme Exp $
</EM></P>
diff --git a/libstdc++-v3/docs/html/20_util/howto.html b/libstdc++-v3/docs/html/20_util/howto.html
index e642ea7..f959468 100644
--- a/libstdc++-v3/docs/html/20_util/howto.html
+++ b/libstdc++-v3/docs/html/20_util/howto.html
@@ -8,7 +8,7 @@
<META NAME="GENERATOR" CONTENT="vi and eight fingers">
<TITLE>libstdc++-v3 HOWTO: Chapter 20</TITLE>
<LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.1 2000/12/10 04:04:54 pme Exp $ -->
+<!-- $Id: howto.html,v 1.2 2001/01/23 17:02:27 pme Exp $ -->
</HEAD>
<BODY>
@@ -212,9 +212,8 @@
<HR>
<P CLASS="fineprint"><EM>
Comments and suggestions are welcome, and may be sent to
-<A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or
-<A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>.
-<BR> $Id: howto.html,v 1.1 2000/12/10 04:04:54 pme Exp $
+<A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
+<BR> $Id: howto.html,v 1.2 2001/01/23 17:02:27 pme Exp $
</EM></P>
diff --git a/libstdc++-v3/docs/html/21_strings/howto.html b/libstdc++-v3/docs/html/21_strings/howto.html
index cdc8368..8025426 100644
--- a/libstdc++-v3/docs/html/21_strings/howto.html
+++ b/libstdc++-v3/docs/html/21_strings/howto.html
@@ -8,7 +8,7 @@
<META NAME="GENERATOR" CONTENT="vi and eight fingers">
<TITLE>libstdc++-v3 HOWTO: Chapter 21</TITLE>
<LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $ -->
+<!-- $Id: howto.html,v 1.2 2001/02/07 00:03:20 pme Exp $ -->
</HEAD>
<BODY>
@@ -329,9 +329,8 @@
<HR>
<P CLASS="fineprint"><EM>
Comments and suggestions are welcome, and may be sent to
-<A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or
-<A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>.
-<BR> $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $
+<A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
+<BR> $Id: howto.html,v 1.2 2001/02/07 00:03:20 pme Exp $
</EM></P>
diff --git a/libstdc++-v3/docs/html/22_locale/howto.html b/libstdc++-v3/docs/html/22_locale/howto.html
index cbf1daf..868b3d9 100644
--- a/libstdc++-v3/docs/html/22_locale/howto.html
+++ b/libstdc++-v3/docs/html/22_locale/howto.html
@@ -8,7 +8,7 @@
<META NAME="GENERATOR" CONTENT="vi and eight fingers">
<TITLE>libstdc++-v3 HOWTO: Chapter 22</TITLE>
<LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $ -->
+<!-- $Id: howto.html,v 1.2 2001/02/07 00:03:20 pme Exp $ -->
</HEAD>
<BODY>
@@ -225,9 +225,8 @@ functionality are given.
<HR>
<P CLASS="fineprint"><EM>
Comments and suggestions are welcome, and may be sent to
-<A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or
-<A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>.
-<BR> $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $
+<A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
+<BR> $Id: howto.html,v 1.2 2001/02/07 00:03:20 pme Exp $
</EM></P>
diff --git a/libstdc++-v3/docs/html/23_containers/howto.html b/libstdc++-v3/docs/html/23_containers/howto.html
index a6c0afc..c8350a7 100644
--- a/libstdc++-v3/docs/html/23_containers/howto.html
+++ b/libstdc++-v3/docs/html/23_containers/howto.html
@@ -8,7 +8,7 @@
<META NAME="GENERATOR" CONTENT="vi and eight fingers">
<TITLE>libstdc++-v3 HOWTO: Chapter 23</TITLE>
<LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.4 2000/12/03 23:47:48 jsm28 Exp $ -->
+<!-- $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $ -->
</HEAD>
<BODY>
@@ -235,9 +235,8 @@
<HR>
<P CLASS="fineprint"><EM>
Comments and suggestions are welcome, and may be sent to
-<A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or
-<A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>.
-<BR> $Id: howto.html,v 1.4 2000/12/03 23:47:48 jsm28 Exp $
+<A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
+<BR> $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $
</EM></P>
diff --git a/libstdc++-v3/docs/html/24_iterators/howto.html b/libstdc++-v3/docs/html/24_iterators/howto.html
index a807cf3..5210632 100644
--- a/libstdc++-v3/docs/html/24_iterators/howto.html
+++ b/libstdc++-v3/docs/html/24_iterators/howto.html
@@ -8,7 +8,7 @@
<META NAME="GENERATOR" CONTENT="vi and eight fingers">
<TITLE>libstdc++-v3 HOWTO: Chapter 24</TITLE>
<LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.5 2000/12/03 23:47:48 jsm28 Exp $ -->
+<!-- $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $ -->
</HEAD>
<BODY>
@@ -84,9 +84,8 @@
<HR>
<P CLASS="fineprint"><EM>
Comments and suggestions are welcome, and may be sent to
-<A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or
-<A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>.
-<BR> $Id: howto.html,v 1.5 2000/12/03 23:47:48 jsm28 Exp $
+<A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
+<BR> $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $
</EM></P>
diff --git a/libstdc++-v3/docs/html/25_algorithms/howto.html b/libstdc++-v3/docs/html/25_algorithms/howto.html
index c161b18..f0481cd 100644
--- a/libstdc++-v3/docs/html/25_algorithms/howto.html
+++ b/libstdc++-v3/docs/html/25_algorithms/howto.html
@@ -8,7 +8,7 @@
<META NAME="GENERATOR" CONTENT="vi and eight fingers">
<TITLE>libstdc++-v3 HOWTO: Chapter 25</TITLE>
<LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.5 2000/12/03 23:47:48 jsm28 Exp $ -->
+<!-- $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $ -->
</HEAD>
<BODY>
@@ -86,9 +86,8 @@
<HR>
<P CLASS="fineprint"><EM>
Comments and suggestions are welcome, and may be sent to
-<A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or
-<A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>.
-<BR> $Id: howto.html,v 1.5 2000/12/03 23:47:48 jsm28 Exp $
+<A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
+<BR> $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $
</EM></P>
diff --git a/libstdc++-v3/docs/html/26_numerics/howto.html b/libstdc++-v3/docs/html/26_numerics/howto.html
index c69532d..4f33841 100644
--- a/libstdc++-v3/docs/html/26_numerics/howto.html
+++ b/libstdc++-v3/docs/html/26_numerics/howto.html
@@ -8,7 +8,7 @@
<META NAME="GENERATOR" CONTENT="vi and eight fingers">
<TITLE>libstdc++-v3 HOWTO: Chapter 26</TITLE>
<LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.7 2000/12/03 23:47:48 jsm28 Exp $ -->
+<!-- $Id: howto.html,v 1.1 2000/12/10 04:04:56 pme Exp $ -->
</HEAD>
<BODY>
@@ -132,9 +132,8 @@
<HR>
<P CLASS="fineprint"><EM>
Comments and suggestions are welcome, and may be sent to
-<A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or
-<A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>.
-<BR> $Id: howto.html,v 1.7 2000/12/03 23:47:48 jsm28 Exp $
+<A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
+<BR> $Id: howto.html,v 1.1 2000/12/10 04:04:56 pme Exp $
</EM></P>
diff --git a/libstdc++-v3/docs/html/27_io/howto.html b/libstdc++-v3/docs/html/27_io/howto.html
index a6aa045..0da4417 100644
--- a/libstdc++-v3/docs/html/27_io/howto.html
+++ b/libstdc++-v3/docs/html/27_io/howto.html
@@ -8,7 +8,7 @@
<META NAME="GENERATOR" CONTENT="vi and eight fingers">
<TITLE>libstdc++-v3 HOWTO: Chapter 27</TITLE>
<LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.2 2001/01/23 17:02:27 pme Exp $ -->
+<!-- $Id: howto.html,v 1.3 2001/02/07 00:03:21 pme Exp $ -->
</HEAD>
<BODY>
@@ -415,9 +415,8 @@
<HR>
<P CLASS="fineprint"><EM>
Comments and suggestions are welcome, and may be sent to
-<A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or
-<A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>.
-<BR> $Id: howto.html,v 1.2 2001/01/23 17:02:27 pme Exp $
+<A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
+<BR> $Id: howto.html,v 1.3 2001/02/07 00:03:21 pme Exp $
</EM></P>
diff --git a/libstdc++-v3/docs/html/ext/howto.html b/libstdc++-v3/docs/html/ext/howto.html
index 78755c6..84b8b8d 100644
--- a/libstdc++-v3/docs/html/ext/howto.html
+++ b/libstdc++-v3/docs/html/ext/howto.html
@@ -8,7 +8,7 @@
<META NAME="GENERATOR" CONTENT="vi and eight fingers">
<TITLE>libstdc++-v3 HOWTO: Extensions</TITLE>
<LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.1 2000/12/10 04:04:56 pme Exp $ -->
+<!-- $Id: howto.html,v 1.2 2001/03/25 00:01:56 pme Exp $ -->
</HEAD>
<BODY>
@@ -141,8 +141,8 @@
<HR>
<H2><A NAME="4">Compile-time checks</A></H2>
- <P>Currently libstdc++-v3 uses the concept checkers from SGI's STL
- 3.3 to perform <A HREF="../19_diagnostics/howto.html#3">optional
+ <P>Currently libstdc++-v3 uses the concept checkers from the Boost
+ library to perform <A HREF="../19_diagnostics/howto.html#3">optional
compile-time checking</A> of template instantiations of the standard
containers. They are described in the linked-to page.
</P>
@@ -158,9 +158,8 @@
<HR>
<P CLASS="fineprint"><EM>
Comments and suggestions are welcome, and may be sent to
-<A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or
-<A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>.
-<BR> $Id: howto.html,v 1.1 2000/12/10 04:04:56 pme Exp $
+<A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
+<BR> $Id: howto.html,v 1.2 2001/03/25 00:01:56 pme Exp $
</EM></P>
diff --git a/libstdc++-v3/docs/html/faq/index.html b/libstdc++-v3/docs/html/faq/index.html
index 95ab8fb..80bb256 100644
--- a/libstdc++-v3/docs/html/faq/index.html
+++ b/libstdc++-v3/docs/html/faq/index.html
@@ -9,7 +9,7 @@
** Locations of "the most recent snapshot is the Nth" text are
** answers 1_1, 1_4, 4_1, 5_6.
-->
-<!-- $Id: index.html,v 1.4 2001/03/01 22:32:23 pme Exp $ -->
+<!-- $Id: index.html,v 1.5 2001/03/25 00:01:57 pme Exp $ -->
</HEAD>
<BODY>
@@ -62,15 +62,16 @@ http://gcc.gnu.org/onlinedocs/libstdc++/faq/</A>.</P>
<LI><A HREF="#4_2">Bugs in gcc/g++ (not libstdc++-v3)</A>
<LI><A HREF="#4_3">Bugs in the C++ language/lib specification</A>
<LI><A HREF="#4_4">Things in libstdc++ that look like bugs</A>
- <UL>
+ <UL>
<LI><A HREF="#4_4_Weff">-Weffc++ complains too much</A>
<LI><A HREF="#4_4_rel_ops">&quot;ambiguous overloads&quot;
- after including an old-style header</A>
+ after including an old-style header</A>
<LI><A HREF="#4_4_interface">The g++-3 headers are
<STRONG>not ours</STRONG></A>
<LI><A HREF="#4_4_glibc">compilation errors from streambuf.h</A>
- <LI><A HREF="#4_4_checks">_STL_ERROR::__something_huge_...</A>
- </UL>
+ <LI><A HREF="#4_4_checks">errors about <EM>*Cconcept</EM> and
+ <EM>constraints</EM> in the STL...</A>
+ </UL>
<LI><A HREF="#4_5">Aw, that's easy to fix!</A>
</OL>
@@ -258,7 +259,7 @@ which is no longer available, thanks deja...-->
that building GCC is much easier and more automated
than building the GCC 2.[78] series was.
<LI> If you plan on hacking around with the makefiles, you
- will need the tools <A
+ will need the tools <A
HREF="http://sources.redhat.com/autoconf/">autoconf</A>and <A
HREF="http://sources.redhat.com/automake/">automake</A>.
<LI> GNU Make is the only make that supports these makefiles.
@@ -289,11 +290,11 @@ HREF="http://sources.redhat.com/automake/">automake</A>.
keep mentioning?</A></H2>
<P>The <EM>Concurrent Versions System</EM> is one of several revision
control packages. It was selected for GNU projects because it's
- free (speech), free (beer), and very high quality. The <A
+ free (speech), free (beer), and very high quality. The <A
HREF="http://www.gnu.org/software/cvs/cvs.html">CVS entry in
the GNU software catalogue</A> has a better description as
well as a
- <A HREF="http://www.cyclic.com/">link to the makers of CVS</A>.
+ <A HREF="http://www.cyclic.com/">link to the makers of CVS</A>.
</P>
<P>The &quot;anonymous client checkout&quot; feature of CVS is
similar to anonymous FTP in that it allows anyone to retrieve
@@ -371,7 +372,7 @@ HREF="http://sources.redhat.com/automake/">automake</A>.
</P>
<P>You have two options. You can get a newer cygwin1.dll (see the
Cygwin paragraph in the
- <A HREF="../install.html">installation instructions</A>).
+ <A HREF="../install.html">installation instructions</A>).
Or you can get a prebuilt set of bits/std_limits.h and
src/limitsMEMBERS.cc files from Mumit Khan's
<A HREF="http://www.xraylith.wisc.edu/~khan/software/gnu-win32/libstdc++-v3.html">Cygwin-related website</A>.
@@ -381,15 +382,15 @@ HREF="http://sources.redhat.com/automake/">automake</A>.
<H2><A NAME="3_3">3.3 Building DEC OSF kills the assembler</A></H2>
<P>The <TT>atomicity.h</TT> header for the Alpha processor
currently uses pseudo-operators which the DEC assembler
- doesn't understand (in particular, .subsection and .previous).
- The simple solution is to install GNU <TT>as</TT> and arrange
- for the GCC build to use it (or merge the sources and build
- it during the bootstrap).
+ doesn't understand (in particular, .subsection and .previous).
+ The simple solution is to install GNU <TT>as</TT> and arrange
+ for the GCC build to use it (or merge the sources and build
+ it during the bootstrap).
</P>
<P>Anyone who
<A HREF="http://gcc.gnu.org/ml/libstdc++/2000-12/msg00279.html">knows
- the DEC assembler well enough</A> to provide the equivalent of
- these two pseudos would win praise and accolades from many.
+ the DEC assembler well enough</A> to provide the equivalent of
+ these two pseudos would win praise and accolades from many.
</P>
@@ -511,12 +512,12 @@ to the list</A>, Nathan Myers announced that he has started a list of
<A NAME="4_4_rel_ops">
<P>Another is the <TT>rel_ops</TT> namespace and the template
comparison operator functions contained therein. If they become
- visible in the same namespace as other comparison functions
- (e.g., '<TT>using</TT>' them and the &lt;iterator&gt; header),
- then you will suddenly be faced with huge numbers of ambiguity
- errors. This was discussed on the -v3 list; Nathan Myers
- <A HREF="http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html">sums
- things up here</A>.
+ visible in the same namespace as other comparison functions
+ (e.g., '<TT>using</TT>' them and the &lt;iterator&gt; header),
+ then you will suddenly be faced with huge numbers of ambiguity
+ errors. This was discussed on the -v3 list; Nathan Myers
+ <A HREF="http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html">sums
+ things up here</A>.
</P>
</A>
<A NAME="4_4_interface"><H3>The g++-3 headers are
@@ -541,8 +542,8 @@ to the list</A>, Nathan Myers announced that he has started a list of
</A>
<A NAME="4_4_glibc">
<P>If you're on a GNU/Linux system and have just upgraded to
- glibc 2.2, but are still using gcc 2.95.2, then you should have
- read the glibc FAQ, specifically 2.34:
+ glibc 2.2, but are still using gcc 2.95.2, then you should have
+ read the glibc FAQ, specifically 2.34:
<PRE>
2.34. When compiling C++ programs, I get a compilation error in streambuf.h.
@@ -551,24 +552,24 @@ apply a patch to the include files in /usr/include/g++, because the fpos_t
type has changed in glibc 2.2. The patch is at
http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
</PRE>
- Note that 2.95.x shipped with the
- <A HREF="#4_4_interface">old v2 library</A> which is no longer
- maintained.
+ Note that 2.95.x shipped with the
+ <A HREF="#4_4_interface">old v2 library</A> which is no longer
+ maintained.
</P>
</A>
<A NAME="4_4_checks">
- <P>If you see compilation errors containing messages which begin
- with _STL_ERROR:: followed by a very verbose name, then most
- likely you have violated one of the requirements for types used
- during instantiation of template containers. For example,
- _STL_ERROR::__equality_comparable_requirement_violation appears
+ <P>If you see compilation errors containing messages about
+ <TT> <EM>foo</EM>Concept </TT>and a<TT> constraints </TT>
+ member function, then most
+ likely you have violated one of the requirements for types used
+ during instantiation of template containers. For example,
+ EqualityComparableConcept appears
if your types must be comparable with == and you have not
provided this capability (a typo, or wrong visibility, or you
- just plain forgot, etc).
+ just plain forgot, etc).
</P>
- <P>More information, including how to optionally disable the checks,
- is available <A HREF="../19_diagnostics/howto.html#3">here</A>.
- The code itself might be disabled or replaced already.
+ <P>More information, including how to optionally disable the checks,
+ is available <A HREF="../19_diagnostics/howto.html#3">here</A>.
</P>
</A>
@@ -579,7 +580,7 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
on <A HREF="http://gcc.gnu.org/contribute.html">submitting
patches</A> that covers the procedure, but for libstdc++ you
should also send the patch to our mailing list in addition to
- the GCC patches mailing list. The libstdc++
+ the GCC patches mailing list. The libstdc++
<A HREF="../17_intro/contribute.html">contributors' page</A>
also talks about how to submit patches.
</P>
@@ -720,9 +721,8 @@ HREF="http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html">speculation</A>.
<HR>
<P CLASS="fineprint"><EM>
Comments and suggestions are welcome, and may be sent to
-<A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or
-<A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>.
-<BR> $Id: index.html,v 1.4 2001/03/01 22:32:23 pme Exp $
+<A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
+<BR> $Id: index.html,v 1.5 2001/03/25 00:01:57 pme Exp $
</EM></P>
diff --git a/libstdc++-v3/docs/html/faq/index.txt b/libstdc++-v3/docs/html/faq/index.txt
index 8af6565..9ad8712 100644
--- a/libstdc++-v3/docs/html/faq/index.txt
+++ b/libstdc++-v3/docs/html/faq/index.txt
@@ -38,7 +38,7 @@
header
o [28]The g++-3 headers are not ours
o [29]compilation errors from streambuf.h
- o [30]_STL_ERROR::__something_huge_...
+ o [30]errors about *Cconcept and constraints in the STL...
5. [31]Aw, that's easy to fix!
5. [32]Miscellaneous
1. [33]string::iterator is not char*; vector<T>::iterator is not
@@ -440,18 +440,16 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
Note that 2.95.x shipped with the [68]old v2 library which is no
longer maintained.
- If you see compilation errors containing messages which begin with
- _STL_ERROR:: followed by a very verbose name, then most likely you
- have violated one of the requirements for types used during
- instantiation of template containers. For example,
- _STL_ERROR::__equality_comparable_requirement_violation appears if
- your types must be comparable with == and you have not provided this
+ If you see compilation errors containing messages about fooConcept and
+ a constraints member function, then most likely you have violated one
+ of the requirements for types used during instantiation of template
+ containers. For example, EqualityComparableConcept appears if your
+ types must be comparable with == and you have not provided this
capability (a typo, or wrong visibility, or you just plain forgot,
etc).
More information, including how to optionally disable the checks, is
- available [69]here. The code itself might be disabled or replaced
- already.
+ available [69]here.
_________________________________________________________________
4.5 Aw, that's easy to fix!
@@ -573,9 +571,9 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
out!
_________________________________________________________________
- Comments and suggestions are welcome, and may be sent to [83]Phil
- Edwards or [84]Gabriel Dos Reis.
- $Id: index.html,v 1.4 2001/03/01 22:32:23 pme Exp $
+ Comments and suggestions are welcome, and may be sent to [83]the
+ mailing list.
+ $Id: index.html,v 1.5 2001/03/25 00:01:57 pme Exp $
References
@@ -661,5 +659,4 @@ References
80. http://www.ansi.org/
81. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998
82. http://www.iso.ch/
- 83. mailto:pme@sources.redhat.com
- 84. mailto:gdr@gcc.gnu.org
+ 83. mailto:libstdc++@gcc.gnu.org
diff --git a/libstdc++-v3/docs/html/install.html b/libstdc++-v3/docs/html/install.html
index fcc0c0d..24df89b 100644
--- a/libstdc++-v3/docs/html/install.html
+++ b/libstdc++-v3/docs/html/install.html
@@ -7,7 +7,7 @@
<META NAME="GENERATOR" CONTENT="vi and eight fingers">
<TITLE>libstdc++-v3 Installation Instructions</TITLE>
<LINK REL=StyleSheet HREF="lib3styles.css">
-<!-- $Id: install.html,v 1.3 2001/01/23 17:02:26 pme Exp $ -->
+<!-- $Id: install.html,v 1.4 2001/02/07 00:03:20 pme Exp $ -->
</HEAD>
<BODY>
@@ -333,9 +333,8 @@
<HR>
<P CLASS="fineprint"><EM>
Comments and suggestions are welcome, and may be sent to
-<A HREF="mailto:pme@sources.redhat.com">Phil Edwards</A> or
-<A HREF="mailto:gdr@gcc.gnu.org">Gabriel Dos Reis</A>.
-<BR> $Id: install.html,v 1.3 2001/01/23 17:02:26 pme Exp $
+<A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
+<BR> $Id: install.html,v 1.4 2001/02/07 00:03:20 pme Exp $
</EM></P>