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.