const auto&
будет достаточно, если я хочу выполнять операции только для чтения. Тем не менее, я столкнулся с
for (auto&& e : v) // v is non-const
пару раз недавно. Это заставляет меня задуматься:
Возможно ли, что в некоторых непонятных угловых случаях есть преимущество в производительности при использовании ссылок пересылки по сравнению с auto&
или const auto&
?
(shared_ptr
является подозреваемым для неясных угловых случаев)
Обновление Два примера, которые я нашел в моих любимых:
Любой недостаток использования константной ссылки при переборе основных типов?
Могу ли я легко перебрать значения карты, используя основанный на диапазоне цикл for?
Пожалуйста, сконцентрируйтесь на вопросе: зачем мне использовать auto && в циклах for на основе диапазона?