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: unassig...@gcc.gnu.org

        ReportedBy: guangmu...@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

Reply via email to