https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77907
--- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- Here's a runnable testcase: struct SomeClass { int someFunction() { return 1; } }; struct SomeFunctor { using MemberFunction = int (SomeClass::*)(); constexpr explicit SomeFunctor(const MemberFunction memberFunction) : memberFunction_{memberFunction} {} MemberFunction memberFunction_; }; SomeFunctor functor{&SomeClass::someFunction}; int main() { if (!functor.memberFunction_) __builtin_abort(); } Interestingly the issue was fixed for -std=c++1z on trunk only yesterday: commit c821ae1a57320c4b1ba47afef6136b534f830351 Author: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Sat Oct 8 16:23:26 2016 +0000 Further P0135 refinement.