diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C')
-rw-r--r-- | gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C b/gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C new file mode 100644 index 00000000000..df16ea78641 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C @@ -0,0 +1,22 @@ +// PR c++/90664 +// { dg-do compile { target c++11 } } + +template <typename TT, typename MFP, MFP> struct OpM; + +template <typename TR, typename TT, TR (TT::*f)()> +struct OpM<TT, TR (TT::*)(), f> +{}; + +class Class { +public: + int address() noexcept { return 0; } + void address(int) noexcept {} +}; + +struct Sk { + template <class C, typename R> Sk(R (C::*p)()) { + typedef OpM<C, R (C::*)() /* noexcept */, &Class::address> OP; + } +}; + +Sk sk(static_cast<int (Class::*)()>(&Class::address)); |