.. title:: clang-tidy - modernize-use-nullptr

modernize-use-nullptr
=====================

The check converts the usage of null pointer constants (eg. ``NULL``, ``0``)
to use the new C++11 ``nullptr`` keyword.

Example
-------

.. code-block:: c++

  void assignment() {
    char *a = NULL;
    char *b = 0;
    char c = 0;
  }

  int *ret_ptr() {
    return 0;
  }


transforms to:

.. code-block:: c++

  void assignment() {
    char *a = nullptr;
    char *b = nullptr;
    char c = 0;
  }

  int *ret_ptr() {
    return nullptr;
  }

Options
-------

.. option:: NullMacros

   Comma-separated list of macro names that will be transformed along with
   ``NULL``. By default this check will only replace the ``NULL`` macro and will
   skip any similar user-defined macros.

Example
^^^^^^^

.. code-block:: c++

  #define MY_NULL (void*)0
  void assignment() {
    void *p = MY_NULL;
  }

transforms to:

.. code-block:: c++

  #define MY_NULL NULL
  void assignment() {
    int *p = nullptr;
  }

if the :option:`NullMacros` option is set to ``MY_NULL``.
