• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-armeabi-2011.09/share/doc/arm-arm-none-eabi/html/gcc/
1<html lang="en">
2<head>
3<title>C++ Extensions - Using the GNU Compiler Collection (GCC)</title>
4<meta http-equiv="Content-Type" content="text/html">
5<meta name="description" content="Using the GNU Compiler Collection (GCC)">
6<meta name="generator" content="makeinfo 4.13">
7<link title="Top" rel="start" href="index.html#Top">
8<link rel="prev" href="C_002b_002b-Implementation.html#C_002b_002b-Implementation" title="C++ Implementation">
9<link rel="next" href="Objective_002dC.html#Objective_002dC" title="Objective-C">
10<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
11<!--
12Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
131998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
142010 Free Software Foundation, Inc.
15
16Permission is granted to copy, distribute and/or modify this document
17under the terms of the GNU Free Documentation License, Version 1.3 or
18any later version published by the Free Software Foundation; with the
19Invariant Sections being ``Funding Free Software'', the Front-Cover
20Texts being (a) (see below), and with the Back-Cover Texts being (b)
21(see below).  A copy of the license is included in the section entitled
22``GNU Free Documentation License''.
23
24(a) The FSF's Front-Cover Text is:
25
26     A GNU Manual
27
28(b) The FSF's Back-Cover Text is:
29
30     You have freedom to copy and modify this GNU Manual, like GNU
31     software.  Copies published by the Free Software Foundation raise
32     funds for GNU development.-->
33<meta http-equiv="Content-Style-Type" content="text/css">
34<style type="text/css"><!--
35  pre.display { font-family:inherit }
36  pre.format  { font-family:inherit }
37  pre.smalldisplay { font-family:inherit; font-size:smaller }
38  pre.smallformat  { font-family:inherit; font-size:smaller }
39  pre.smallexample { font-size:smaller }
40  pre.smalllisp    { font-size:smaller }
41  span.sc    { font-variant:small-caps }
42  span.roman { font-family:serif; font-weight:normal; } 
43  span.sansserif { font-family:sans-serif; font-weight:normal; } 
44--></style>
45<link rel="stylesheet" type="text/css" href="../cs.css">
46</head>
47<body>
48<div class="node">
49<a name="C++-Extensions"></a>
50<a name="C_002b_002b-Extensions"></a>
51<p>
52Next:&nbsp;<a rel="next" accesskey="n" href="Objective_002dC.html#Objective_002dC">Objective-C</a>,
53Previous:&nbsp;<a rel="previous" accesskey="p" href="C_002b_002b-Implementation.html#C_002b_002b-Implementation">C++ Implementation</a>,
54Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
55<hr>
56</div>
57
58<h2 class="chapter">7 Extensions to the C++ Language</h2>
59
60<p><a name="index-extensions_002c-C_002b_002b-language-3253"></a><a name="index-C_002b_002b-language-extensions-3254"></a>
61The GNU compiler provides these extensions to the C++ language (and you
62can also use most of the C language extensions in your C++ programs).  If you
63want to write code that checks whether these features are available, you can
64test for the GNU compiler the same way as for C programs: check for a
65predefined macro <code>__GNUC__</code>.  You can also use <code>__GNUG__</code> to
66test specifically for GNU C++ (see <a href="../cpp/Common-Predefined-Macros.html#Common-Predefined-Macros">Predefined Macros</a>).
67
68<ul class="menu">
69<li><a accesskey="1" href="C_002b_002b-Volatiles.html#C_002b_002b-Volatiles">C++ Volatiles</a>:        What constitutes an access to a volatile object. 
70<li><a accesskey="2" href="Restricted-Pointers.html#Restricted-Pointers">Restricted Pointers</a>:  C99 restricted pointers and references. 
71<li><a accesskey="3" href="Vague-Linkage.html#Vague-Linkage">Vague Linkage</a>:        Where G++ puts inlines, vtables and such. 
72<li><a accesskey="4" href="C_002b_002b-Interface.html#C_002b_002b-Interface">C++ Interface</a>:        You can use a single C++ header file for both
73                        declarations and definitions. 
74<li><a accesskey="5" href="Template-Instantiation.html#Template-Instantiation">Template Instantiation</a>:  Methods for ensuring that exactly one copy of
75                        each needed template instantiation is emitted. 
76<li><a accesskey="6" href="Bound-member-functions.html#Bound-member-functions">Bound member functions</a>:  You can extract a function pointer to the
77                        method denoted by a &lsquo;<samp><span class="samp">-&gt;*</span></samp>&rsquo; or &lsquo;<samp><span class="samp">.*</span></samp>&rsquo; expression. 
78<li><a accesskey="7" href="C_002b_002b-Attributes.html#C_002b_002b-Attributes">C++ Attributes</a>:       Variable, function, and type attributes for C++ only. 
79<li><a accesskey="8" href="Namespace-Association.html#Namespace-Association">Namespace Association</a>:  Strong using-directives for namespace association. 
80<li><a accesskey="9" href="Type-Traits.html#Type-Traits">Type Traits</a>:          Compiler support for type traits
81<li><a href="Java-Exceptions.html#Java-Exceptions">Java Exceptions</a>:      Tweaking exception handling to work with Java. 
82<li><a href="Deprecated-Features.html#Deprecated-Features">Deprecated Features</a>:  Things will disappear from g++. 
83<li><a href="Backwards-Compatibility.html#Backwards-Compatibility">Backwards Compatibility</a>:  Compatibilities with earlier definitions of C++. 
84</ul>
85
86 </body></html>
87
88