1 // PR c++/66684 2 // { dg-do compile { target c++11 } } 3 4 template<typename T> 5 struct traits 6 { footraits7 static constexpr bool foo() { return sizeof(T) > 1; } bartraits8 static constexpr bool bar() { return sizeof(T) > 1; } 9 }; 10 11 template<typename T> 12 struct X 13 { 14 X& operator=(X&&) noexcept(traits<T>::foo()); 15 }; 16 17 template<typename T> 18 X<T>& noexcept(traits<T>::foo ()&& traits<T>::bar ())19 X<T>::operator=(X&&) noexcept(traits<T>::foo() && traits<T>::bar()) // { dg-error "different exception" } 20 { return *this; } 21