2 // { dg-do compile { target c++11 } }
4 template <typename TT, typename MFP, MFP> struct OpM;
6 template <typename TR, typename TT, TR (TT::*f)()>
7 struct OpM<TT, TR (TT::*)(), f>
12 int address() noexcept { return 0; }
13 void address(int) noexcept {}
17 template <class C, typename R> Sk(R (C::*p)()) {
18 typedef OpM<C, R (C::*)() /* noexcept */, &Class::address> OP;
22 Sk sk(static_cast<int (Class::*)()>(&Class::address));