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.

Reply via email to