[C++ dayly bug report] const_cast to rvalue of class type

Benjamin Scherrey scherrey@switchco.com
Thu Apr 29 18:51:00 GMT 1999


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


More information about the Gcc-bugs mailing list