X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=libstdc%2B%2B-v3%2Fdoc%2Fhtml%2Fmanual%2Fext_compile_checks.html;fp=libstdc%2B%2B-v3%2Fdoc%2Fhtml%2Fmanual%2Fext_compile_checks.html;h=132c8b61994bc2508c252f96e30aa2d04deecaf7;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=0000000000000000000000000000000000000000;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/libstdc++-v3/doc/html/manual/ext_compile_checks.html b/libstdc++-v3/doc/html/manual/ext_compile_checks.html new file mode 100644 index 00000000..132c8b61 --- /dev/null +++ b/libstdc++-v3/doc/html/manual/ext_compile_checks.html @@ -0,0 +1,40 @@ + + +Chapter 29. Compile Time Checks

Chapter 29. Compile Time Checks

+ Also known as concept checking. +

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. +

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. +

The primary author of the checking code, Jeremy Siek, had already + started work on a replacement 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. +

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. +

They are off by default for all versions of GCC from 3.0 to 3.4 (the + latest release at the time of writing). + They can be enabled at configure time with + --enable-concept-checks. + You can enable them on a per-translation-unit basis with + #define _GLIBCXX_CONCEPT_CHECKS for GCC 3.4 and higher + (or with #define _GLIBCPP_CONCEPT_CHECKS for versions + 3.1, 3.2 and 3.3). +

Please note that the upcoming C++ standard has first-class + support for template parameter constraints based on concepts in the core + language. This will obviate the need for the library-simulated concept + checking described above. +