Resolve clang-tidy warnings
Currently we have a lot of clang-tidy warnings in the source base. Examples:
Clang-Tidy: Class '...' defines a non-default destructor but does not define a copy constructor, a copy assignment operator, a move constructor or a move assignment operator
Clang-Tidy: Operator=() should return '...&'
Clang-Tidy: Use '= default' to define a trivial destructor
Clang-Tidy: Do not use C-style cast to downcast from a base to a derived class; use dynamic_cast instead
Clang-Tidy: Annotate this function with 'override' or (rarely) 'final'
Clang-Tidy: Variable '...' is not initialized
Clang-Tidy: Parameter '...' is passed by value and only copied once; consider moving it to avoid unnecessary copies
...
There might be clang-tidy warnings which are not needed in our project, or are distracting from real issues. In such cases the warning should be discussed and may be removed from .clang-tidy
.
This should not be done in one MR, better try to solve this file by file, or class by class.
When the last clang-tidy warning is fixed, it should be tested in the CI if there was a new generated by a commit and fail.