Ref-квалификаторы для оператора присваивания типов стандартной библиотекиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ref-квалификаторы для оператора присваивания типов стандартной библиотеки

Сообщение Anonymous »

Мне интересно, есть ли причина, по которой оператор присваивания стандартных типов не соответствует lvalue ref? Ни один из них не является таковым.

Поэтому мы можем писать такие вещи:

Код: Выделить всё

std::string{} = "42";
std::string s = "hello " + std::string{"world"} = "oops!";

std::vector v = { 1,2,3 };
std::move(v) = { 4,5,6 };
Если бы оператор присваивания был квалифицирован lvalue ref, все эти примеры не скомпилировались бы.

Это потому, что там много чего надо доработать (но тогда так было для noException) и никто не написал предложение? Я не думаю, что люди пишут такой код, но разве библиотека не должна быть спроектирована так, чтобы она даже не допускала этого?

Подробнее здесь: https://stackoverflow.com/questions/530 ... rary-types
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»