for (Something something : setOfSomething) // OK
for (Something const& something : setOfSomething) // OK
for (Something& something : setOfSomething) // ERROR
error: invalid initialization of reference of type 'Something&'
from expression of type 'const Something'
从什么时候迭代器返回const Something
?它应该返回Something&
或Something const&
。而且由于基于范围的“for”循环被解释为这样,我对正在发生的事情没有合理的解释。
编辑:我说的是,unordered_set
而不是set
,对这种混乱感到抱歉。