exception-specifications of template arguments
14.5 [except.spec]
Gabriel Dos Reis

Created on 2013-10-16.00:00:00 last changed 111 months ago


Date: 2015-04-13.00:00:00

Additional note, April, 2015:

EWG has decided not to make a change in this area. See EWG issue 133.

Date: 2014-02-15.00:00:00

Rationale (February, 2014):

Are template declarations that differ only in the exception-specification of the parameter redeclarations or separate templates distinguished, presumably, by deduction failure? This seems like a question more appropriate for consideration by EWG.

Date: 2022-11-20.07:54:16

Although 14.5 [except.spec] paragraphs 5-6 require that overriding a virtual function and initializing or assigning to a function pointer not weaken exception-specifications, the same is not true of providing a template argument for a template parameter. For example,

  template<void (*FP)() noexcept> void x() { }
  void f() noexcept(false);
  template void x<f>();

is currently well-formed, which seems inconsistent. (Note that if exception-specifications become part of the type system, as proposed in issue 92, this issue will become moot.)

See also issues 2010, 1995, 1975, and 1946.

Date User Action Args
2015-04-13 00:00:00adminsetmessages: + msg5438
2015-04-13 00:00:00adminsetstatus: extension -> nad
2014-03-03 00:00:00adminsetmessages: + msg4990
2014-03-03 00:00:00adminsetstatus: open -> extension
2013-10-16 00:00:00admincreate