[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / clang-tools-extra / docs / clang-tidy / checks / modernize / use-nullptr.rst
blobffb1cb78dffe060904611e6f004e69ef5311d231
1 .. title:: clang-tidy - modernize-use-nullptr
3 modernize-use-nullptr
4 =====================
6 The check converts the usage of null pointer constants (e.g. ``NULL``, ``0``)
7 to use the new C++11 ``nullptr`` keyword.
9 Example
10 -------
12 .. code-block:: c++
14   void assignment() {
15     char *a = NULL;
16     char *b = 0;
17     char c = 0;
18   }
20   int *ret_ptr() {
21     return 0;
22   }
25 transforms to:
27 .. code-block:: c++
29   void assignment() {
30     char *a = nullptr;
31     char *b = nullptr;
32     char c = 0;
33   }
35   int *ret_ptr() {
36     return nullptr;
37   }
39 Options
40 -------
42 .. option:: NullMacros
44    Comma-separated list of macro names that will be transformed along with
45    ``NULL``. By default this check will only replace the ``NULL`` macro and will
46    skip any similar user-defined macros.
48 Example
49 ^^^^^^^
51 .. code-block:: c++
53   #define MY_NULL (void*)0
54   void assignment() {
55     void *p = MY_NULL;
56   }
58 transforms to:
60 .. code-block:: c++
62   #define MY_NULL NULL
63   void assignment() {
64     int *p = nullptr;
65   }
67 if the :option:`NullMacros` option is set to ``MY_NULL``.