[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / clang-tools-extra / docs / clang-tidy / checks / modernize / use-default-member-init.rst
blob2d3ed3801493739ad15c84d96b66aa75ac5ade22
1 .. title:: clang-tidy - modernize-use-default-member-init
3 modernize-use-default-member-init
4 =================================
6 This check converts constructors' member initializers into the new
7 default member initializers in C++11. Other member initializers that match the
8 default member initializer are removed. This can reduce repeated code or allow
9 use of '= default'.
11 .. code-block:: c++
13   struct A {
14     A() : i(5), j(10.0) {}
15     A(int i) : i(i), j(10.0) {}
16     int i;
17     double j;
18   };
20   // becomes
22   struct A {
23     A() {}
24     A(int i) : i(i) {}
25     int i{5};
26     double j{10.0};
27   };
29 .. note::
30   Only converts member initializers for built-in types, enums, and pointers.
31   The `readability-redundant-member-init` check will remove redundant member
32   initializers for classes.
34 Options
35 -------
37 .. option:: UseAssignment
39    If this option is set to `true` (default is `false`), the check will initialize
40    members with an assignment. For example:
42 .. code-block:: c++
44   struct A {
45     A() {}
46     A(int i) : i(i) {}
47     int i = 5;
48     double j = 10.0;
49   };
51 .. option:: IgnoreMacros
53    If this option is set to `true` (default is `true`), the check will not warn
54    about members declared inside macros.