OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [libstdc++-v3/] [doc/] [html/] [manual/] [ext_compile_checks.html] - Blame information for rev 424

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 424 jeremybenn
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 29. Compile Time Checks</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="extensions.html" title="Part XII.  Extensions" /><link rel="prev" href="bk01pt12pr03.html" title="" /><link rel="next" href="debug_mode.html" title="Chapter 30. Debug Mode" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 29. Compile Time Checks</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt12pr03.html">Prev</a> </td><th width="60%" align="center">Part XII. 
4
  Extensions
5
 
6
</th><td width="20%" align="right"> <a accesskey="n" href="debug_mode.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 29. Compile Time Checks"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.compile_checks"></a>Chapter 29. Compile Time Checks</h2></div></div></div><p>
7
    Also known as concept checking.
8
  </p><p>In 1999, SGI added <span class="emphasis"><em>concept checkers</em></span> to their implementation
9
      of the STL:  code which checked the template parameters of
10
      instantiated pieces of the STL, in order to insure that the parameters
11
      being used met the requirements of the standard.  For example,
12
      the Standard requires that types passed as template parameters to
13
      <code class="code">vector</code> be <span class="quote">“<span class="quote">Assignable</span>”</span> (which means what you think
14
      it means).  The checking was done during compilation, and none of
15
      the code was executed at runtime.
16
   </p><p>Unfortunately, the size of the compiler files grew significantly
17
      as a result.  The checking code itself was cumbersome.  And bugs
18
      were found in it on more than one occasion.
19
   </p><p>The primary author of the checking code, Jeremy Siek, had already
20
      started work on a replacement implementation.  The new code has been
21
      formally reviewed and accepted into
22
      <a class="ulink" href="http://www.boost.org/libs/concept_check/concept_check.htm" target="_top">the
23
      Boost libraries</a>, and we are pleased to incorporate it into the
24
      GNU C++ library.
25
   </p><p>The new version imposes a much smaller space overhead on the generated
26
      object file.  The checks are also cleaner and easier to read and
27
      understand.
28
   </p><p>They are off by default for all versions of GCC from 3.0 to 3.4 (the
29
      latest release at the time of writing).
30
      They can be enabled at configure time with
31
      <a class="link" href="configure.html" title="Configure"><code class="literal">--enable-concept-checks</code></a>.
32
      You can enable them on a per-translation-unit basis with
33
      <code class="code">#define _GLIBCXX_CONCEPT_CHECKS</code> for GCC 3.4 and higher
34
      (or with <code class="code">#define _GLIBCPP_CONCEPT_CHECKS</code> for versions
35
      3.1, 3.2 and 3.3).
36
   </p><p>Please note that the upcoming C++ standard has first-class
37
   support for template parameter constraints based on concepts in the core
38
   language. This will obviate the need for the library-simulated concept
39
   checking described above.
40
   </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt12pr03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="debug_mode.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 30. Debug Mode</td></tr></table></div></body></html>

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.