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/] [using_macros.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>Macros</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="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_headers.html" title="Headers" /><link rel="next" href="using_namespaces.html" title="Namespaces" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Macros</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_namespaces.html">Next</a></td></tr></table><hr /></div><div class="sect1" title="Macros"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.macros"></a>Macros</h2></div></div></div><p>
4
     All library macros begin with <code class="code">_GLIBCXX_</code>.
5
   </p><p>
6
     Furthermore, all pre-processor macros, switches, and
7
      configuration options are gathered in the
8
      file <code class="filename">c++config.h</code>, which
9
      is generated during the libstdc++ configuration and build
10
      process. This file is then included when needed by files part of
11
      the public libstdc++ API, like &lt;ios&gt;. Most of these macros
12
      should not be used by consumers of libstdc++, and are reserved
13
      for internal implementation use. <span class="emphasis"><em>These macros cannot
14
      be redefined</em></span>.
15
   </p><p>
16
     A select handful of macros control libstdc++ extensions and extra
17
      features, or provide versioning information for the API.  Only
18
      those macros listed below are offered for consideration by the
19
      general public.
20
   </p><p>Below is the macro which users may check for library version
21
      information. </p><div class="variablelist"><dl><dt><span class="term"><code class="code">__GLIBCXX__</code></span></dt><dd><p>The current version of
22
    libstdc++ in compressed ISO date format, form of an unsigned
23
    long. For details on the value of this particular macro for a
24
    particular release, please consult this <a class="link" href="abi.html" title="ABI Policy and Guidelines">
25
    document</a>.
26
    </p></dd></dl></div><p>Below are the macros which users may change with #define/#undef or
27
      with -D/-U compiler flags.  The default state of the symbol is
28
      listed.</p><p><span class="quote">“<span class="quote">Configurable</span>”</span> (or <span class="quote">“<span class="quote">Not configurable</span>”</span>) means
29
      that the symbol is initially chosen (or not) based on
30
      --enable/--disable options at library build and configure time
31
      (documented <a class="link" href="configure.html" title="Configure">here</a>), with the
32
      various --enable/--disable choices being translated to
33
      #define/#undef).
34
   </p><p> <acronym class="acronym">ABI</acronym> means that changing from the default value may
35
  mean changing the <acronym class="acronym">ABI</acronym> of compiled code. In other words, these
36
  choices control code which has already been compiled (i.e., in a
37
  binary such as libstdc++.a/.so).  If you explicitly #define or
38
  #undef these macros, the <span class="emphasis"><em>headers</em></span> may see different code
39
  paths, but the <span class="emphasis"><em>libraries</em></span> which you link against will not.
40
  Experimenting with different values with the expectation of
41
  consistent linkage requires changing the config headers before
42
  building/installing the library.
43
   </p><div class="variablelist"><dl><dt><span class="term"><code class="code">_GLIBCXX_DEPRECATED</code></span></dt><dd><p>
44
        Defined by default. Not configurable. ABI-changing. Turning this off
45
        removes older ARM-style iostreams code, and other anachronisms
46
        from the API.  This macro is dependent on the version of the
47
        standard being tracked, and as a result may give different results for
48
        <code class="code">-std=c++98</code> and <code class="code">-std=c++0x</code>. This may
49
        be useful in updating old C++ code which no longer meet the
50
        requirements of the language, or for checking current code
51
        against new language standards.
52
    </p></dd><dt><span class="term"><code class="code">_GLIBCXX_FORCE_NEW</code></span></dt><dd><p>
53
        Undefined by default. When defined, memory allocation and
54
        allocators controlled by libstdc++ call operator new/delete
55
        without caching and pooling. Configurable via
56
        <code class="code">--enable-libstdcxx-allocator</code>. ABI-changing.
57
      </p></dd><dt><span class="term"><code class="code">_GLIBCXX_CONCEPT_CHECKS</code></span></dt><dd><p>
58
        Undefined by default.  Configurable via
59
        <code class="code">--enable-concept-checks</code>.  When defined, performs
60
        compile-time checking on certain template instantiations to
61
        detect violations of the requirements of the standard.  This
62
        is described in more detail <a class="link" href="ext_compile_checks.html" title="Chapter 29. Compile Time Checks">here</a>.
63
      </p></dd><dt><span class="term"><code class="code">_GLIBCXX_DEBUG</code></span></dt><dd><p>
64
        Undefined by default. When defined, compiles user code using
65
    the <a class="link" href="debug_mode.html" title="Chapter 30. Debug Mode">debug mode</a>.
66
      </p></dd><dt><span class="term"><code class="code">_GLIBCXX_DEBUG_PEDANTIC</code></span></dt><dd><p>
67
        Undefined by default. When defined while compiling with
68
    the <a class="link" href="debug_mode.html" title="Chapter 30. Debug Mode">debug mode</a>, makes
69
    the debug mode extremely picky by making the use of libstdc++
70
    extensions and libstdc++-specific behavior into errors.
71
      </p></dd><dt><span class="term"><code class="code">_GLIBCXX_PARALLEL</code></span></dt><dd><p>Undefined by default. When defined, compiles user code
72
    using the <a class="link" href="parallel_mode.html" title="Chapter 31. Parallel Mode">parallel
73
    mode</a>.
74
      </p></dd><dt><span class="term"><code class="code">_GLIBCXX_PROFILE</code></span></dt><dd><p>Undefined by default. When defined, compiles user code
75
    using the <a class="link" href="profile_mode.html" title="Chapter 32. Profile Mode">profile
76
    mode</a>.
77
      </p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_namespaces.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Headers </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Namespaces</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.