// PR c++/36871
// { dg-do "run" }
#include <cassert>
struct A { template <class T> A (T) throw (int); };
struct B { B (B&) throw (); template <class T> B (T) throw (int); };
int main ()
{
assert (__has_nothrow_copy (A));
assert (__has_nothrow_copy (B));
}