forked from OSchip/llvm-project
91 lines
1.9 KiB
ReStructuredText
91 lines
1.9 KiB
ReStructuredText
.. 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`.
|