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



             Bug #: 55942

           Summary: [C++11] sorry, unimplemented: calling a member

                    function of the object being constructed in a constant

                    expression

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Keywords: FIXME

          Severity: minor

          Priority: P3

         Component: c++

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: r...@gcc.gnu.org





struct A

{

    constexpr explicit A(bool b) : o{flip(b)} { }



    constexpr bool flip(bool b) { return !b; }



    bool o;

};



ce.cc: In constructor 'constexpr A::A(bool)':

ce.cc:3:49: sorry, unimplemented: calling a member function of the object being

constructed in a constant expression

     constexpr explicit A(bool b) : o{flip(b)} { }

                                                 ^



I found this by accident because I meant to define A::flip as a static member

function, which would have worked. Omitting the static gives the "sorry" above.

Reply via email to