Go forward to Major changes.
Go up to Changes.
Summary of Changes in Phase 1.3
===============================
The bulk of this note discusses the cumulative effects of the GNU C++
Renovation Project to date. The work during its most recent phase (1.3)
had these major effects:
* The standard compiler driver `g++' is now the faster compiled
version, rather than a shell script.
* Nested types work much better; notably, nesting is no longer
restricted to nine levels.
* Better ARM conformance on member access control.
* The compiler now always generates default assignment operators
(`operator ='), copy constructors (`X::X(X&)'), and default
constructors (`X::X()') whenever they are required.
* The new draft ANSI standard keyword `mutable' is supported.
* `-fansi-overloading' is the default, to comply better with the ARM
(at some cost in compatibility to earlier versions of GNU C++).
* More informative error messages.
* System include files are automatically treated as if they were
wrapped in `extern "C" { }'.
* The new option `-falt-external-templates' provides alternate
template instantiation semantics.
* Operator declarations are now checked more strictly.
* You can now use template type arguments in the template parameter
list.
* You can call the destructor for any type.
* The compiler source code is better organized.
* You can specify where to instantiate template definitions
explicitly.
Much of the work in Phase 1.3 went to elimination of known bugs, as
well as the major items above.
During the span of Phase 1.3, there were also two changes associated
with the compiler that, while not specifically part of the C++
Renovation project, may be of interest:
* `gcov', a code coverage tool for GNU CC, is now available from
Cygnus Support. (`gcov' is free software, but the FSF has not yet
accepted it.) See `gcov': a Test Coverage Program: (gcc.info)Gcov, for more information (in Cygnus releases of that
manual).
* GNU C++ now supports "signatures", a language extension to provide
more flexibility in abstract type definitions. *Note Type
Abstraction using Signatures: (gcc.info)C++ Signatures.