From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31788 invoked by alias); 2 Aug 2007 17:07:46 -0000 Received: (qmail 30070 invoked by uid 48); 2 Aug 2007 17:07:32 -0000 Date: Thu, 02 Aug 2007 17:07:00 -0000 Message-ID: <20070802170732.30066.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug c++/32658] Supposedly illegal conversion compiles without errors In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "widman at gimpel dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2007-08/txt/msg00102.txt.bz2 ------- Comment #8 from widman at gimpel dot com 2007-08-02 17:07 ------- (In reply to comment #7) > (In reply to comment #6) > > Is it possible that rvalue references will give you an alternative for the > > desired effect? See the relevant papers linked to from here: > > > > http://open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2291.html > > > > This would mean that instead of A::A(A &), I wrote A::A(A &&) and passing > temporaries would automatically work? That's correct. Rvalues would bind directly to the 'A&&' parameter; you could even have two ctors: struct A { A(const A&); // copy ctor A(A&&); // move ctor }; ...and when you initialize an 'A' with an rvalue, overload resolution will select the move ctor. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32658