Информация об изменениях

Сообщение Re[7]: Тип переменной цикла for от 26.01.2019 8:42

Изменено 26.01.2019 13:44 rg45

Re[7]: Тип переменной цикла for
Здравствуйте, YuriV, Вы писали:

YV>vector<bool> это, как раз, пример когда специализация сужает область применения обобщённой сущности, что есть нонсенс, а значит ошибка архитектуры. Если к специализации нужно писать отдельную рекомендацию по применению, то от такой специализации нужно отказаться. Как здесь правильно сказали следует использовать отдельный тип.


По поводу vector<bool> уже сломано немало копий и мне не хотелось бы в этом топике разворочивать снова эту дискуссию. Главное, что я хотел выразить здесь: http://rsdn.org/forum/cpp/7353947.1
Автор: rg45
Дата: 21.01.19
, это то, что операции разыменовывания итераторов всех (почти) стандартных контейнеров возвращают lvalue ссылки, а значит и переменная range for цикла, как бы она ни была объявленя, никак не может быть rvalue ссылкой. А vector<bool> здесь — то самое исключение, которое лишь подтверждает общее правило.
Re[7]: Тип переменной цикла for
Здравствуйте, YuriV, Вы писали:

YV>vector<bool> это, как раз, пример когда специализация сужает область применения обобщённой сущности, что есть нонсенс, а значит ошибка архитектуры. Если к специализации нужно писать отдельную рекомендацию по применению, то от такой специализации нужно отказаться. Как здесь правильно сказали следует использовать отдельный тип.


По поводу vector<bool> уже сломано немало копий и мне не хотелось бы в этом топике возобновлять эту дискуссию. Главное, что я хотел выразить здесь: http://rsdn.org/forum/cpp/7353947.1
Автор: rg45
Дата: 21.01.19
, это то, что операции разыменовывания итераторов всех (почти) стандартных контейнеров являются lvalue выражениями, а значит и переменная range for цикла, как бы она ни была объявлена, никак не может быть rvalue ссылкой. А vector<bool> здесь — то самое исключение, которое лишь подтверждает общее правило.