Strange warning in C++11 range based for loop
Ian Lance Taylor
iant@google.com
Tue Aug 30 17:14:00 GMT 2011
Marc Glisse <marc.glisse@inria.fr> writes:
> On Tue, 30 Aug 2011, Ian Lance Taylor wrote:
>
>> Jonathan Wakely <jwakely.gcc@gmail.com> writes:
>>
>>> You could file an enhancement request in Bugzilla requesting that the
>>> warning is disabled for the variable in the for-range-declaration.
>>
>> Personally I think this is the way to go. The variable is implicitly
>> used, and the warning should reflect that.
>
> If C++ had allowed for(int:range) in addition to for(int i:range),
> like you can abstain from naming function arguments, the warning would
> have made more sense. As it is, I agree the warning should go,
> although I don't know why you say the variable is implicitly used.
The variable is implicitly used in the generated code: each element of
the iterable is assigned to it in turn. Those assignments are likely
later discarded as dead, but there is still an implicit use.
Ian
More information about the Gcc-help
mailing list