.. index:: Use-Nullptr Transform ===================== Use-Nullptr Transform ===================== The Use-Nullptr Transform is a transformation to convert the usage of null pointer constants (eg. ``NULL``, ``0``) to use the new C++11 ``nullptr`` keyword. The transform is enabled with the :option:`-use-nullptr` option of :program:`clang-modernize`. 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; } User defined macros =================== By default this transform will only replace the ``NULL`` macro and will skip any user-defined macros that behaves like ``NULL``. The user can use the :option:`-user-null-macros` option to specify a comma-separated list of macro names that will be transformed along with ``NULL``. Example ------- .. code-block:: c++ #define MY_NULL (void*)0 void assignment() { void *p = MY_NULL; } using the command-line .. code-block:: bash clang-modernize -use-nullptr -user-null-macros=MY_NULL foo.cpp transforms to: .. code-block:: c++ #define MY_NULL NULL void assignment() { int *p = nullptr; } Risk ==== :option:`-risk` has no effect in this transform.