Overload resolution is picking the wrong candidate for the construction of b3,
below:

  base2 b3(static_cast<base2&&>(b));

Instead of choosing the move constructor, it is picking the trivial copy
constructor. However, adding a normal copy constructor fixes the problem.

Naturally, this only occurs in C++0x mode.


-- 
           Summary: C++0x overloading problem with move constructor and
                    trivial copy constructor
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dgregor at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33235

Reply via email to