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.