| .. title:: clang-tidy - modernize-use-noexcept |
| |
| 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 |
| ------- |
| |
| .. code-block:: c++ |
| |
| void foo() throw(); |
| void bar() throw(int) {} |
| |
| transforms to: |
| |
| .. code-block:: c++ |
| |
| void foo() noexcept; |
| void bar() noexcept(false) {} |
| |
| Options |
| ------- |
| |
| .. option:: ReplacementString |
| |
| Users can use :option:`ReplacementString` to specify a macro to use |
| instead of ``noexcept``. This is useful when maintaining source code |
| that uses custom exception specification marking other than |
| ``noexcept``. Fix-it hints will only be generated for non-throwing |
| specifications. |
| |
| Example |
| ^^^^^^^ |
| |
| .. code-block:: c++ |
| |
| void bar() throw(int); |
| void foo() throw(); |
| |
| transforms to: |
| |
| .. code-block:: c++ |
| |
| void bar() throw(int); // No fix-it generated. |
| void foo() NOEXCEPT; |
| |
| if the :option:`ReplacementString` option is set to `NOEXCEPT`. |
| |
| .. option:: UseNoexceptFalse |
| |
| Enabled by default, disabling 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 are ``noexcept(true)`` by |
| default. |
| |
| Example |
| ^^^^^^^ |
| |
| .. code-block:: c++ |
| |
| 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: |
| |
| .. code-block:: c++ |
| |
| 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 :option:`UseNoexceptFalse` option is set to `0`. |