Go forward to New features.
Go backward to Summary of Phase 1.3.
Go up to Changes.

Major Changes
=============

   This release includes four wholesale rewrites of certain areas of
compiler functionality:

  1. Argument matching.  GNU C++ is more compliant with the rules
     described in Chapter 13, "Overloading", of the ARM.  This behavior
     is the default, though you can specify it explicitly with
     `-fansi-overloading'.   For compatibility with earlier releases of
     GNU C++, specify `-fno-ansi-overloading'; this makes the compiler
     behave as it used to with respect to argument matching and name
     overloading.

  2. Default constructors/destructors.  Section 12.8 of the ARM,
     "Copying Class Objects", and Section 12.1, "Constructors", state
     that a compiler must declare such default functions if the user
     does not specify them.  GNU C++ now declares, and generates when
     necessary, the defaults for constructors and destructors you might
     omit.  In particular, assignment operators (`operator =') behave
     the same way whether you define them, or whether the compiler
     generates them by default; taking the address of the default
     `operator =' is now guaranteed to work.  Default copy constructors
     (`X::X(X&)') now function correctly, rather than calling the copy
     assignment operator for the base class.  Finally, constructors
     (`X::X()'), as well as assignment operators and copy constructors,
     are now available whenever they are required.

  3. Binary incompatibility.  There are no new binary incompatibilities
     in Phase 1.3, but Phase 1.2 introduced two binary
     incompatibilities with earlier releases.  First, the functionality
     of `operator new' and `operator delete' changed.  Name encoding
     ("mangling") of virtual table names changed as well.  Libraries
     built with versions of the compiler earlier than Phase 1.2 must be
     compiled with the new compiler.  (This includes the Cygnus Q2
     progressive release and the FSF 2.4.5 release.)

  4. New `g++' driver.  A new binary `g++' compiler driver replaces the
     shell script.  The new driver executes faster.