This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 115e. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2024-11-11
[Adopted at the October, 2015 meeting as P0012R1.]
In the following example,
struct A { template<class T> T foo(T t) noexcept { return t; } }; template<class T, int (T::*fptr)(int)> struct S { A a; S() noexcept(noexcept((a.*fptr)(1))) {} }; int foo() { return noexcept(S<A,&A::foo>()); }
what should foo return? The question hinges upon whether the noexcept property of the template argument is preserved or lost in the process of substitution.
See also issues 2010, 1975, 1946, and 1798.