the check will now warn when the user provided definitions of this functions is equivalent to the explicitly defaulted ones.
Generally, I feel like a lot of the code would be written better as ast matchers (by adding new matchers if necessary). You can use tooling::ast_matchers::matches if you want to do a match inside a callback.
FIXME: Put into ASTMatchers.h (or just do that :)
In which cases can this be false? (I assume if not all are copied?)
This can be false is there is we do anything else than initializing the
bases and members. So the previous code is there to ensure that we do that
and this is here to ensure that we *only* do that.
Cool, those cases would be useful to have as comment, for example:
Make sure there are no additional initializations going on (for example, of indirect bases)
and that all fields and direct bases have been initialized.