всегда копирование/присвоение?
Если рассматривать только стандартные контейнеры и только вызов operator[] справа, то да, копирование. Все стандартные (если я правильно помню) отдают по индексу lvalue ссылку.
> Все стандартные (если я правильно помню) отдают по индексу lvalue ссылку. Ну вроде std::vector<bool> отдает не lvalue а какой-то прокси объект. (Впрочем, там все равно будет просто копирование)
Все контейнеры отдают предусмотренный их реализацией reference. Для вектора буул референс есть объект с опреатором буул(). Такую реализацию референс также приходится применять если контейнер представлен интерфейсом типа virtual getItem(..). Это нормально.
Обсуждают сегодня