Exception specifications in templates instantiated from class bodies
14.5 [except.spec]
Daveed Vandevoorde

Created on 2006-09-07.00:00:00 last changed 122 months ago


Date: 2012-02-15.00:00:00

Notes from the February, 2012 meeting:

The outcome of this issue will be affected by the resolution of issue 1330. See also issue 287.

This issue is subsumed by the newer issue 1330 and should be discussed in that context.

Date: 2022-11-20.07:54:16

Note, January, 2012:

With the deprecation of dynamic-exception-specifications, the importance of this issue is reduced even further. The current specification is clear, and the suggested resolution is an extension. It has been suggested that the issue be closed as NAD.

Date: 2022-11-20.07:54:16

A type used in an exception specification must be complete (14.5 [except.spec] paragraph 2). The resolution of issue 437 stated that a class type appearing in an exception specification inside its own member-specification is considered to be complete. Should this also apply to exception specifications in class templates instantiated because of a reference inside the member-specification of a class? For example,

    template<class T> struct X {
        void f() throw(T) {}

    struct S {
        X<S> xs;
Date User Action Args
2013-05-03 00:00:00adminsetstatus: open -> dup
2012-02-27 00:00:00adminsetmessages: + msg3782
2012-01-17 00:00:00adminsetmessages: + msg3679
2006-09-07 00:00:00admincreate