This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 113d. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2024-03-20


92. Should exception-specifications be part of the type system?

Section: 14.5  [except.spec]     Status: CD4     Submitter: Jonathan Schilling     Date: 2 Feb 1999

[Adopted at the October, 2015 meeting as P0012R1.]

It was tentatively agreed at the Santa Cruz meeting that exception specifications should fully participate in the type system. This change would address gaps in the current static checking of exception specifications such as

    void (*p)() throw(int);
    void (**pp)() throw() = &p;   // not currently an error

This is such a major change that it deserves to be a separate issue.

See also issues 25, 87, and 133.

Additional note (March, 2013):

The advent of the noexcept operator makes this issue more relevant in C++11.

Notes from the April, 2013 meeting:

CWG feels that a paper on this topic is needed before any action can be taken.

Notes from the September, 2013 meeting:

CWG feels that EWG would be a better venue for this issue. Possible options might include removal of dynamic-exception-specifications and incorporation of the binary noexcept status in the type system.

Rationale (February, 2014):

EWG determined that no action should be taken on this issue.

Additional note, April, 2015:

EWG has expressed interest in further exploring this issue (see EWG issue 169), so it has been returned to "extension" status. See also issues 1946 and 2010.