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.