Namespaces
Variants
Views
Actions

Talk:cpp/language/except spec

From cppreference.com

Could you explain why throw is flagged as deprecated?

The standards committee declared them deprecated in C++11 (look at the section D.4 of the C++11 standard). So they probably will be removed in some future revision of the standard. P12 02:43, 25 November 2011 (PST)
Herb Sutter has a post explaining the problems with throw-specifications: http://www.gotw.ca/publications/mill22.htm --Cubbi 07:27, 25 November 2011 (PST)

[edit] Why dynamic?

Why are exception specifications named "dynamic"? 92.210.1.14 14:25, 27 July 2016 (PDT)


Aah, I see: It's opposed to noexcept-specification 92.210.1.14 14:25, 27 July 2016 (PDT)

[edit] A paragraph marked as (since c++17) is describing throw(Ts...)

The item was removed in C++17 itself. Is the description contradictious? --Fruderica (talk) 05:16, 25 November 2018 (PST)

That's a core issue resolution that we need to DR-ify. T. Canens (talk) 11:17, 25 November 2018 (PST)
What resolution? Where does C++17 refer to "throw(Ts...)"? Rustyx (talk) 05:02, 3 August 2020 (PDT)
I think it's the resolution of CWG1351 and it should be applied to previous revisions of C++ standards. --Fruderica (talk) 08:02, 3 August 2020 (PDT)

[edit] Is the following line correct?

`struct D() { D() throw (double); }; // new D's set is the set of all types`

shouldn't the set of `new D` be `double` or am I gravely missing something

new D calls global ::operator new(), which is potentially throwing, and thus the set is the set of all types since C++11 (the dynamic exception specification was throw(std::bad_alloc) in C++98/03, but removed in C++11). --Fruderica (talk) 22:21, 26 November 2020 (PST)