Comments and suggestions are welcome, and may be sent to
-Phil Edwards or
-Gabriel Dos Reis.
- $Id: howto.html,v 1.6 2000/12/03 23:47:47 jsm28 Exp $
+the mailing list.
+ $Id: howto.html,v 1.1 2000/12/10 04:03:09 pme Exp $
Comments and suggestions are welcome, and may be sent to
-Phil Edwards or
-Gabriel Dos Reis.
- $Id: howto.html,v 1.7 2000/12/03 23:47:47 jsm28 Exp $
+the mailing list.
+ $Id: howto.html,v 1.1 2000/12/10 04:04:54 pme Exp $
Good news: 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 vector
- be "Assignable" (which means what you think it means).
+
In 1999, SGI added concept checkers 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
+ vector be "Assignable" (which means what you think
+ it means). The checking was done during compilation, and none of
+ the code was executed at runtime.
-
The concept checkers allow the source code for vector to
- declare
-
- __STL_CLASS_REQUIRES(_Tp, _Assignable);
-
inside the template. _Tp is the element type of the
- vector, and _Assignable is the concept to be checked (it is
- defined in some back-end header files). When you instantiate
- vector<MyType>, compile-time checking can be done on
- whether MyType meets the requirements for vectors.
+
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.
-
Most (all?) of the containers and sequences are capable of performing
- concept checking during compilation, not just vector.
+
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
+ the
+ Boost libraries, and we are pleased to incorporate it into the
+ GNU C++ library.
-
If a concept is violated (thus causing a compilation failure), the
- error messages printed by the compiler will be of the form
-
- _STL_ERROR::__foo_violation
-
where foo 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.
+
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.
-
Other names might be seen for more specific errors, for example,
- _ERROR_IN_STL_CONTAINER::__begin_iterator_accessor_requirement_violation.
+
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
+ _GLIBCPP_NO_CONCEPT_CHECKS (yes, with the leading underscore),
+ _STL_NO_CONCEPT_CHECKS (also with the leading underscore),
+ or NDEBUG. 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 assert(), which is often turned
+ off for production builds.
-
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.
-
-
Bad news: 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.
-
-
Concept checking can be disabled when you build your code. Just
- define (via -D or #define) the macro
- _STL_NO_CONCEPT_CHECKS (yes, with the leading underscore).
- In fact, this may already be defined in the library by default,
- depending on what decision we come to.
-
-
More good news: 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.
+
Comments and suggestions are welcome, and may be sent to
-Phil Edwards or
-Gabriel Dos Reis.
- $Id: howto.html,v 1.1 2000/12/10 04:04:54 pme Exp $
+the mailing list.
+ $Id: howto.html,v 1.2 2001/03/25 00:01:56 pme Exp $
Comments and suggestions are welcome, and may be sent to
-Phil Edwards or
-Gabriel Dos Reis.
- $Id: howto.html,v 1.1 2000/12/10 04:04:54 pme Exp $
+the mailing list.
+ $Id: howto.html,v 1.2 2001/01/23 17:02:27 pme Exp $
Comments and suggestions are welcome, and may be sent to
-Phil Edwards or
-Gabriel Dos Reis.
- $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $
+the mailing list.
+ $Id: howto.html,v 1.2 2001/02/07 00:03:20 pme Exp $
Comments and suggestions are welcome, and may be sent to
-Phil Edwards or
-Gabriel Dos Reis.
- $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $
+the mailing list.
+ $Id: howto.html,v 1.2 2001/02/07 00:03:20 pme Exp $
Comments and suggestions are welcome, and may be sent to
-Phil Edwards or
-Gabriel Dos Reis.
- $Id: howto.html,v 1.4 2000/12/03 23:47:48 jsm28 Exp $
+the mailing list.
+ $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $
Comments and suggestions are welcome, and may be sent to
-Phil Edwards or
-Gabriel Dos Reis.
- $Id: howto.html,v 1.5 2000/12/03 23:47:48 jsm28 Exp $
+the mailing list.
+ $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $
Comments and suggestions are welcome, and may be sent to
-Phil Edwards or
-Gabriel Dos Reis.
- $Id: howto.html,v 1.5 2000/12/03 23:47:48 jsm28 Exp $
+the mailing list.
+ $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $
Comments and suggestions are welcome, and may be sent to
-Phil Edwards or
-Gabriel Dos Reis.
- $Id: howto.html,v 1.7 2000/12/03 23:47:48 jsm28 Exp $
+the mailing list.
+ $Id: howto.html,v 1.1 2000/12/10 04:04:56 pme Exp $
Comments and suggestions are welcome, and may be sent to
-Phil Edwards or
-Gabriel Dos Reis.
- $Id: howto.html,v 1.2 2001/01/23 17:02:27 pme Exp $
+the mailing list.
+ $Id: howto.html,v 1.3 2001/02/07 00:03:21 pme Exp $
Comments and suggestions are welcome, and may be sent to
-Phil Edwards or
-Gabriel Dos Reis.
- $Id: howto.html,v 1.1 2000/12/10 04:04:56 pme Exp $
+the mailing list.
+ $Id: howto.html,v 1.2 2001/03/25 00:01:56 pme Exp $
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.
-->
-
+
@@ -62,15 +62,16 @@ http://gcc.gnu.org/onlinedocs/libstdc++/faq/.
Aw, that's easy to fix!
@@ -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.
If you plan on hacking around with the makefiles, you
- will need the tools autoconfand automake.
GNU Make is the only make that supports these makefiles.
@@ -289,11 +290,11 @@ HREF="http://sources.redhat.com/automake/">automake.
keep mentioning?
The "anonymous client checkout" 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.
You have two options. You can get a newer cygwin1.dll (see the
Cygwin paragraph in the
- installation instructions).
+ installation instructions).
Or you can get a prebuilt set of bits/std_limits.h and
src/limitsMEMBERS.cc files from Mumit Khan's
Cygwin-related website.
@@ -381,15 +382,15 @@ HREF="http://sources.redhat.com/automake/">automake.
The atomicity.h 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 as 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 as and arrange
+ for the GCC build to use it (or merge the sources and build
+ it during the bootstrap).
Anyone who
knows
- the DEC assembler well enough to provide the equivalent of
- these two pseudos would win praise and accolades from many.
+ the DEC assembler well enough to provide the equivalent of
+ these two pseudos would win praise and accolades from many.
@@ -511,12 +512,12 @@ to the list, Nathan Myers announced that he has started a list of
More information, including how to optionally disable the checks,
+ is available here.
@@ -579,7 +580,7 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
on submitting
patches 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++
contributors' page
also talks about how to submit patches.
@@ -720,9 +721,8 @@ HREF="http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html">speculation.
Comments and suggestions are welcome, and may be sent to
-Phil Edwards or
-Gabriel Dos Reis.
- $Id: index.html,v 1.4 2001/03/01 22:32:23 pme Exp $
+the mailing list.
+ $Id: index.html,v 1.5 2001/03/25 00:01:57 pme Exp $
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::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 @@
libstdc++-v3 Installation Instructions
-
+
@@ -333,9 +333,8 @@
Comments and suggestions are welcome, and may be sent to
-Phil Edwards or
-Gabriel Dos Reis.
- $Id: install.html,v 1.3 2001/01/23 17:02:26 pme Exp $
+the mailing list.
+ $Id: install.html,v 1.4 2001/02/07 00:03:20 pme Exp $