| .. 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(); |
| } |