You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So, this is the reason, at #37 (comment), that we recommend using g++ and the -Weffc++ flag because it can catch this (note, clang++ plus -Weffc++ cannot):
-Weffc++ - useful when building with g++ (does not do much with clang++). With g++ it can catch uninitialized class members and prevent crashes like mapbox/wagyu#69 - refs mapbox/wagyu#70
Problem
-Weffc++ will warn on all class members not explicitly initialized in the initializer list
clang-tidy will automatically remove variables from the initializer list that have default constructors
So, the two will fight: causing each other warnings. For this reason I think we should likely:
let clang-tidy win
recommend no longer using g++ with -Weffc++
figure out what alternative way we can catch when members, without default initializers, are uninitialized (without needing to use -Weffc++). Maybe another clang-tidy check?
The text was updated successfully, but these errors were encountered:
Context
Recent versions of clang-tidy added
readability-redundant-member-init
: https://clang.llvm.org/extra/clang-tidy/checks/readability-redundant-member-init.htmlThis is handy! When a class member has a default initializer it is redundent to initialize it in the member list.
But, because some types don't have default initializers, forgetting to initialize them in the member list (or using c++11 initialization in the class definition) can lead to serious trouble like mapbox/wagyu#69 - refs mapbox/wagyu#70.
So, this is the reason, at #37 (comment), that we recommend using g++ and the
-Weffc++
flag because it can catch this (note, clang++ plus-Weffc++
cannot):Problem
-Weffc++
will warn on all class members not explicitly initialized in the initializer listclang-tidy
will automatically remove variables from the initializer list that have default constructorsSo, the two will fight: causing each other warnings. For this reason I think we should likely:
-Weffc++
-Weffc++
). Maybe anotherclang-tidy
check?The text was updated successfully, but these errors were encountered: