.. title:: clang-tidy - modernize-use-uncaught-exceptions
modernize-use-uncaught-exceptions
====================================
This check will warn on calls to ``std::uncaught_exception`` and replace them
with calls to ``std::uncaught_exceptions``, since ``std::uncaught_exception``
was deprecated in C++17.
Below are a few examples of what kind of occurrences will be found and what
they will be replaced with.
.. code-block:: c++
#define MACRO1 std::uncaught_exception
#define MACRO2 std::uncaught_exception
int uncaught_exception() {
return 0;
}
int main() {
int res;
res = uncaught_exception();
// No warning, since it is not the deprecated function from namespace std
res = MACRO2();
// Warning, but will not be replaced
res = std::uncaught_exception();
// Warning and replaced
using std::uncaught_exception;
// Warning and replaced
res = uncaught_exception();
// Warning and replaced
}
After applying the fixes the code will look like the following:
.. code-block:: c++
#define MACRO1 std::uncaught_exception
#define MACRO2 std::uncaught_exception
int uncaught_exception() {
return 0;
}
int main() {
int res;
res = uncaught_exception();
res = MACRO2();
res = std::uncaught_exceptions();
using std::uncaught_exceptions;
res = uncaught_exceptions();
}