This adds a diagnostic when an unqualified call is resolved
to std::move or std::forward.
This follows some C++ committee discussions where some
people where concerns that this might be an usual anti pattern
particularly britle worth warning about - both because move
is a common name and because these functions accept any values.
This warns inconditionnally of whether the current context is in
std:: or not, as implementations probably want to always qualify
these calls too, to avoid triggering adl accidentally.
This should probably be named -Wunqualified-std-move resp. -Wunqualified-std-forward, so that we preserve our ability to add a more generalized -Wunqualified-std-call diagnostic (probably not enabled by default) in the future.
I'd actually like to go ahead and add the generalized diagnostic right now, since it would be about 10 extra lines of code, and at least I would use it as soon as it landed in trunk! But I'm prepared for that to be controversial and wouldn't necessarily pick that hill to die on. :) (Ah, and I'm reminded that the generalized diagnostic would need a bigger list of hard-coded functions to ignore, such as swap and begin and end and so on.)