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