1.. title:: clang-tidy - modernize-use-default-member-init
2
3modernize-use-default-member-init
4=================================
5
6This check converts a default constructor's member initializers into the new
7default member initializers in C++11. Other member initializers that match the
8default member initializer are removed. This can reduce repeated code or allow
9use of '= default'.
10
11.. code-block:: c++
12
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  };
19
20  // becomes
21
22  struct A {
23    A() {}
24    A(int i) : i(i) {}
25    int i{5};
26    double j{10.0};
27  };
28
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.
33
34Options
35-------
36
37.. option:: UseAssignment
38
39   If this option is set to `true` (default is `false`), the check will initialise
40   members with an assignment. For example:
41
42.. code-block:: c++
43
44  struct A {
45    A() {}
46    A(int i) : i(i) {}
47    int i = 5;
48    double j = 10.0;
49  };
50
51.. option:: IgnoreMacros
52
53   If this option is set to `true` (default is `true`), the check will not warn
54   about members declared inside macros.
55