[Bug c++/49045] [C++0x] unexpected "different exception specifier" error with noexcept

jason at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed May 18 18:42:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49045

--- Comment #4 from Jason Merrill <jason at gcc dot gnu.org> 2011-05-18 18:21:39 UTC ---
A workaround would be to use a forwarding function:

template<typename _Tp>
  void
  swap(_Tp&, _Tp&);

template<class T>
void __do_swap(T&& a,T&& b) { swap(a,b); }

template<typename _Tp, __SIZE_TYPE__ _Nm>
  void
  swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
  noexcept(noexcept(__do_swap(*__a, *__b)));

template<typename _Tp, __SIZE_TYPE__ _Nm>
  void
  swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
  noexcept(noexcept(__do_swap(*__a, *__b)))
  { }



More information about the Gcc-bugs mailing list