This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [C++ dayly bug report] const_cast to rvalue of class type
- To: Gabriel Dos_Reis <Gabriel dot Dos_Reis at sophia dot inria dot fr>
- Subject: Re: [C++ dayly bug report] const_cast to rvalue of class type
- From: Benjamin Scherrey <scherrey at switchco dot com>
- Date: Thu, 29 Apr 1999 21:48:55 -0500
- CC: egcs-bugs at egcs dot cygnus dot com, egcs at egcs dot cygnus dot com, Guillaume Laurent <glaurent at worldnet dot fr>
- Organization: Proteus Technologies, Inc.
- References: <xajyajbkl30.fsf@korrigan.inria.fr>
- Reply-To: scherrey at proteus-tech dot com
Please pardon my ignorance here but I'm not sure I understand what the
issue is. For const_cast, the return type for a cast from anything other
than a reference type is an rvalue. In this case I would expect your
code to execute the default constructor then call your copy constructor.
Your cast doesn't have any effect that I can see. Is this not the
behaviour you're getting or anticipate?
later,
Ben Scherrey
Gabriel Dos_Reis wrote:
>
> EGCS/g++ happily accepts to const_cast to rvalues of class type.
>
> // --- cut here ---
> #include <iostream>
>
> struct A {
> A() {}
> A(const A&) { std::cout << "A::A(const A&)\n"; }
> };
>
> int main()
> {
> A a;
> const_cast<const A>(a); // ERROR
> }
> // --- cut here ---
>
> The program is ill-formed according to 5.2.11.
>
> -- Gaby