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))) {
             ^

Reply via email to