See this example:
struct Base {
int a = 0;
};
template <typename T>
struct Der: Base {
Der() {
a = 1;
}
};
clang-tidy produces cppcoreguidelines-prefer-member-initializer warning for a = 1 in Der. Applying the suggested tweak (puts a(1) into Der's member initializer list) creates broken code.
If Der is not a template, this problem doesn't happen.