object file. The checks are also cleaner and easier to read and
understand.
</para>
- <para>They are off by default for all versions of GCC from 3.0 to 3.4 (the
- latest release at the time of writing).
+ <para>They are off by default for all GCC 3.0 and all later versions.
They can be enabled at configure time with
<link linkend="manual.intro.setup.configure"><literal>--enable-concept-checks</literal></link>.
You can enable them on a per-translation-unit basis with
</para>
<para>Please note that the concept checks only validate the requirements
- of the old C++03 standard. C++11 was expected to have first-class
- support for template parameter constraints based on concepts in the core
- language. This would have obviated the need for the library-simulated concept
- checking described above, but was not part of C++11.
+ of the old C++03 standard and reject some valid code that meets the relaxed
+ requirements of C++11 and later standards.
+ C++11 was expected to have first-class support for template parameter
+ constraints based on concepts in the core language.
+ This would have obviated the need for the library-simulated concept checking
+ described above, but was not part of C++11.
+ C++20 adds a different model of concepts, which is now used to constrain
+ some new parts of the C++20 library, e.g. the
+ <filename><ranges></filename> header and the new overloads in the
+ <filename><algorithm></filename> header for working with ranges.
+ The old library-simulated concept checks might be removed at a future date.
</para>
</chapter>