Go forward to Exception Handling.
Go backward to Parser.
Go up to Top.

Copying Objects
===============

   The generated copy assignment operator in g++ does not currently do
the right thing for multiple inheritance involving virtual bases; it
just calls the copy assignment operators for its direct bases.  What it
should probably do is:

   1) Split up the copy assignment operator for all classes that have
vbases into "copy my vbases" and "copy everything else" parts.  Or do
the trickiness that the constructors do to ensure that vbases don't get
initialized by intermediate bases.

   2) Wander through the class lattice, find all vbases for which no
intermediate base has a user-defined copy assignment operator, and call
their "copy everything else" routines.  If not all of my vbases satisfy
this criterion, warn, because this may be surprising behavior.

   3) Call the "copy everything else" routine for my direct bases.

   If we only have one direct base, we can just foist everything off
onto them.

   This issue is currently under discussion in the core reflector
(2/28/94).