I like to force a policy of no warnings when I check someone’s code. Any warnings that appear have to be explicitly documented as sometimes it’s not easy to remove some warnings or might require too many cycles or memory etc.
But there is a down-side to this policy and that is removing warnings in ways that are potentially dangerous, i.e. the method used actually hides the problem rather than fixes it.
The one I’m most acutely aware of is explicitly casts which might hide a bug.
What other potentially dangerous ways of removing compiler warnings in C(++) are there that I should look out for?
const correctness can cause a few problems for beginners:
later:
Edit1: In a somewhat similar vein, marking all member variables as mutable, because your code often changes them when const correctness says it really shouldn’t.
Edit2: Another one I’ve come across (possibly from Java programmers ) is to tack throw() specifications onto functions, whether they could actually throw or not.