https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84698
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2018-03-08 CC| |jason at gcc dot gnu.org, | |msebor at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> --- Confirmed. Bisection points to r209907 (gcc 4.10.0): r209907 | jason | 2014-04-29 14:04:50 -0400 (Tue, 29 Apr 2014) | 27 lines DR 1351 Represent the unevaluated exception specification of an implicitly declared or deleted function with a simple placeholder, not a list of functions. Before then GCC errors out with: pr84698.C: In instantiation of ‘struct X<int, int>’: pr84698.C:15:14: required from here pr84698.C:7:14: error: declaration of ‘template<class ... Args> void swap(X<Args ...>&, X<Args ...>&) noexcept (<uninstantiated>)’ has a different exception specifier friend void swap(X<Args...>& a, X<Args...>& b) noexcept(noexcept(a.swap(b))); ^ pr84698.C:11:13: error: from previous declaration ‘template<class ... Args> void swap(X<Args ...>&, X<Args ...>&) noexcept (noexcept (a.swap(b)))’ inline void swap(X<Args...>& a, X<Args...>& b) noexcept(noexcept(a.swap(b))) { ^