This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Disable -std=c++17 "ISO C++1z does not allow dynamic exception specifications"?


On 02/21/2017 03:56 PM, Jonathan Wakely wrote:
On 21 February 2017 at 14:55, Jonathan Wakely wrote:
On 21 February 2017 at 14:51, Jakub Jelinek wrote:
On Tue, Feb 21, 2017 at 03:44:17PM +0100, Stephan Bergmann wrote:
There is no flag to suppress that error or demote it to a warning, is there?
Could be useful when adapting large code bases to C++17 incrementally.

It is a warning in C++11/C++14 now, so compile with -std=c++14 and
incrementally fix all those warnings, then switch over to -std=c++17?

Sure, cleaning up is trivial enough, when you have control over the code.

-std=c++17 also turns on P0012R1 (noexcept part of the typesystem), so not
sure what would the deprecated dynamic exception specification mean
together with that (we shouldn't be adding new mangling for the dynamic
exception specification etc.).

We absolutely shouldn't add new mangling, but it could simply mean
noexcept(false).

An exception specification that says "this can throw X, Y and Z" means
it can throw.

I'm not proposing we do that though, I want dynamic exception
specifications to go away ASAP :-) I'm surprised who are trying C++17

s/who are/people who are/

didn't get the memo 10+ years ago that they were broken and useless.

The typical scenario being code base A #include'ing header files from code base B.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]