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