[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / clang-tools-extra / docs / clang-tidy / checks / readability / redundant-member-init.rst
blobb2f86c4429cc5101b8ed4c0b62686671d22e9243
1 .. title:: clang-tidy - readability-redundant-member-init
3 readability-redundant-member-init
4 =================================
6 Finds member initializations that are unnecessary because the same default
7 constructor would be called if they were not present.
9 Example
10 -------
12 .. code-block:: c++
14   // Explicitly initializing the member s is unnecessary.
15   class Foo {
16   public:
17     Foo() : s() {}
19   private:
20     std::string s;
21   };
23 Options
24 -------
26 .. option:: IgnoreBaseInCopyConstructors
28     Default is `false`.
30     When `true`, the check will ignore unnecessary base class initializations
31     within copy constructors, since some compilers issue warnings/errors when
32     base classes are not explicitly initialized in copy constructors. For example,
33     ``gcc`` with ``-Wextra`` or ``-Werror=extra`` issues warning or error
34     ``base class 'Bar' should be explicitly initialized in the copy constructor``
35     if ``Bar()`` were removed in the following example:
37 .. code-block:: c++
39   // Explicitly initializing member s and base class Bar is unnecessary.
40   struct Foo : public Bar {
41     // Remove s() below. If IgnoreBaseInCopyConstructors!=0, keep Bar().
42     Foo(const Foo& foo) : Bar(), s() {}
43     std::string s;
44   };