summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/eh/spec4.C
blob: 8edd3a1c6499aaff66ea837fe79b5340808e4834 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// PR c++/5104
// Test that a function with a throw spec is a valid template argument.

#include <exception>

typedef void (*HandlerFunction)();
typedef HandlerFunction (*SetHandlerFunction)(HandlerFunction);

template <SetHandlerFunction set_function>
class HandlerStack {
public:
  static void defaultHandler();
};

typedef HandlerStack<std::set_terminate> Terminate;

template<> void Terminate::defaultHandler() {}