http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48386
--- Comment #2 from zxfox at mail dot ru 2011-03-31 13:37:05 UTC --- (In reply to comment #1) > This is not a bug, G++ is correct. > > Are you trying to create a static variable? > > The rules of C++ say that "B b( A() )" is interpreted as a declaration of a > function called "b" which takes a single parameter and returns "B" For: struct A {}; struct B { B( A ) {} }; int main() { B b( A() ); } all works, so I have decide that is a bug, sorry for wasted time.