A number of major changes appear in this release of G++. If some features mentioned below sound unfamiliar, you will probably want to look at the recently-released public review copy of the C++ Working Paper. For PostScript and PDF (Adobe Acrobat) versions, see the archive at `ftp://research.att.com/dist/stdc++/WP'. For HTML and ASCII versions, see `ftp://ftp.cygnus.com/pub/g++'. On the Web, see `http://www.cygnus.com/misc/wp-draft'.
-fhandle-exception
This is a flag to the C++ frontend.
This option turns on C++ exception handling as documented in the ANSI
draft standard for C++. This draft standard can be viewed at
`http://www.cygnus.com/misc/'. This option adds some readonly text and
readonly data space overhead necessary for the implementation of
exception handling. It cannot be used with -O
yet. The option
-frtti
can be used in conjunction with this flag to enable subtype
matching on catch clauses.
-frepo
flag when compiling to enable; collect2
will
recompile affected files as necessary toprovide all needed template
instantiations. Do not use -fexternal-templates
with -frepo
.
for-init-statement
The scope of variables declared in the for-init-statement
has been
changed to conform to
http://www.cygnus.com/misc/wp-draft/stmt.html#stmt.forMost old code will continue to compile with a warning; use
-ffor-scope
to disallow it or -fno-for-scope
to revert to
the old semantics.
keyword
typename for G++
G++ now accepts the typename keyword
, though it currently has no
semantics; it can be a no-op in the current template implementation.
You may want to start using it in your code, however, since the
pending rewrite of the template implementation to compile STL properly
(perhaps for 2.8.0, perhaps not) will require you to use it as
indicated by the current draft.
||
and &&
, is now more efficient.
extern inline
Functions declared extern inline
now have the same linkage semantics
as inline member functions. On supported targets, where previously
these functions (and vtables, and template instantiations) would have
been defined statically, they will now be defined as weak symbols so
that only one out-of-line definition is used.
collect2
collect2
now demangles linker output, and c++filt
has become
part of the GCC distribution.
#pragma
interface/implementation or the location of the
vtable.
libg++
There are two issues:
curses
functions.
libg++
(if using g++
, use c++
instead), OR
-lcurses
(and possibly -ltermcap
), OR
-static
to avoid using any shared libraries
LD_LIBRARY_PATH
environment variable, OR
-rpath
`/usr/progressive/lib' for DEC UNIX (OSF/1), -R
`/usr/progressive/lib' for Solaris. SunOS 4 does not need such an
option, nor does AIX.