modernize-use-noexcept¶
This check replaces deprecated dynamic exception specifications with
the appropriate noexcept specification (introduced in C++11). By
default this check will replace throw() with noexcept,
and throw(<exception>[,...]) or throw(...) with
noexcept(false).
Example¶
void foo() throw();
void bar() throw(int) {}
transforms to:
void foo() noexcept;
void bar() noexcept(false) {}
Options¶
- ReplacementString¶
Users can use
ReplacementStringto specify a macro to use instead ofnoexcept. This is useful when maintaining source code that uses custom exception specification marking other thannoexcept. Fix-it hints will only be generated for non-throwing specifications.Example:
void bar() throw(int); void foo() throw();
transforms to:
void bar() throw(int); // No fix-it generated. void foo() NOEXCEPT;
if the
ReplacementStringoption is set toNOEXCEPT.
- UseNoexceptFalse¶
When
false, the check will generate fix-it hints that remove throwing dynamic exception specs, e.g.,throw(<something>), completely without providing a replacement text, except for destructors and delete operators that arenoexcept(true)by default.Example:
void foo() throw(int) {} struct bar { void foobar() throw(int); void operator delete(void *ptr) throw(int); void operator delete[](void *ptr) throw(int); ~bar() throw(int); }
transforms to:
void foo() {} struct bar { void foobar(); void operator delete(void *ptr) noexcept(false); void operator delete[](void *ptr) noexcept(false); ~bar() noexcept(false); }
if the
UseNoexceptFalseoption is set tofalse.Default is
true.