Этот вопрос упомянул о явном, идиоматическом использовании С++ 11, основанного на диапазоне.
for (auto& elem: container) {
// do something with elem
}
У меня были сомнения в том, какую ссылку вы должны использовать. Итераторы ввода могут возвращать значения r. Хотя неявный тип, введенный auto
, можно вывести на const
, который будет привязан к r-значению, который, похоже, не возникает.
Лучше ли вообще использовать идеальную пересылку?
for (auto && elem: container) {
// do something with elem
}
Здесь я не вижу недостатков, но это выглядит слишком мило. Возможно, я все еще просто не написал достаточно С++ 11.