]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/doc/implement-cxx.texi
Update copyright years.
[thirdparty/gcc.git] / gcc / doc / implement-cxx.texi
CommitLineData
818ab71a 1@c Copyright (C) 2009-2016 Free Software Foundation, Inc.
c32097d8
JM
2@c This is part of the GCC manual.
3@c For copying conditions, see the file gcc.texi.
4
5@node C++ Implementation
e6f3f526 6@chapter C++ Implementation-Defined Behavior
c32097d8
JM
7@cindex implementation-defined behavior, C++ language
8
9A conforming implementation of ISO C++ is required to document its
10choice of behavior in each of the areas that are designated
11``implementation defined''. The following lists all such areas,
309dc1aa
DM
12along with the section numbers from the ISO/IEC 14882:1998 and ISO/IEC
1314882:2003 standards. Some areas are only implementation-defined in
c32097d8
JM
14one version of the standard.
15
16Some choices depend on the externally determined ABI for the platform
17(including standard character encodings) which GCC follows; these are
18listed as ``determined by ABI'' below. @xref{Compatibility, , Binary
19Compatibility}, and @uref{http://gcc.gnu.org/readings.html}. Some
20choices are documented in the preprocessor manual.
21@xref{Implementation-defined behavior, , Implementation-defined
22behavior, cpp, The C Preprocessor}. Some choices are documented in
23the corresponding document for the C language. @xref{C
24Implementation}. Some choices are made by the library and operating
25system (or other environment when compiling for a freestanding
26environment); refer to their documentation for details.
27
28@menu
29* Conditionally-supported behavior::
d3f28910 30* Exception handling::
c32097d8
JM
31@end menu
32
33@node Conditionally-supported behavior
e6f3f526 34@section Conditionally-Supported Behavior
c32097d8
JM
35
36@cite{Each implementation shall include documentation that identifies
37all conditionally-supported constructs that it does not support (C++0x
381.4).}
39
40@itemize @bullet
41@item
42@cite{Whether an argument of class type with a non-trivial copy
43constructor or destructor can be passed to ... (C++0x 5.2.2).}
44
d2f2e467
JM
45Such argument passing is supported, using the same
46pass-by-invisible-reference approach used for normal function
47arguments of such types.
c32097d8
JM
48
49@end itemize
d3f28910
JM
50
51@node Exception handling
e6f3f526 52@section Exception Handling
d3f28910
JM
53
54@itemize @bullet
55@item
56@cite{In the situation where no matching handler is found, it is
57implementation-defined whether or not the stack is unwound before
58std::terminate() is called (C++98 15.5.1).}
59
60The stack is not unwound before std::terminate is called.
61
62@end itemize