# Extra Clang Tools 22.1.2 documentation

## clang-tidy - readability-redundant-member-init

# readability-redundant-member-init

Finds member initializations that are unnecessary because the same default constructor would be called if they were not present.

## Example

    // Explicitly initializing the member s and v is unnecessary.
    class Foo {
    public:
      Foo() : s() {}

    private:
      std::string s;
      std::vector<int> v {};
    };

## Options

IgnoreBaseInCopyConstructors

  Default is false.

  When true, the check will ignore unnecessary base class initializations within copy constructors, since some compilers issue warnings/errors when base classes are not explicitly initialized in copy constructors. For example, `gcc` with `-Wextra` or `-Werror=extra` issues warning or error `base class 'Bar' should be explicitly initialized in the copy constructor` if `Bar()` were removed in the following example:

    // Explicitly initializing member s and base class Bar is unnecessary.
    struct Foo : public Bar {
      // Remove s() below. If IgnoreBaseInCopyConstructors!=0, keep Bar().
      Foo(const Foo& foo) : Bar(), s() {}
      std::string s;
    };