[Bug c++/55280] New: Compiler error: Class definition is recognized as function declaration

guangmuzhu at gmail dot com gcc-bugzilla@gcc.gnu.org
Mon Nov 12 06:16:00 GMT 2012


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

             Bug #: 55280
           Summary: Compiler error: Class definition is recognized as
                    function declaration
    Classification: Unclassified
           Product: gcc
           Version: 4.7.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: guangmuzhu@gmail.com


A and B are both class. If a object is defined by "A a(B());", compiler reports
a is none-class type A(B (*)()).
I guess g++ translates it to "B temp(); A a(b);". If a is defined by "A
a(B(argument));", it's OK. But unfortunately, default constructor is not
allowed to be used like "B temp();", temp is declared as a function.
ps: vs 2008 doesn't have the problem



More information about the Gcc-bugs mailing list