Именованные требования C++: MoveAssignable (начиная с C++11)
Указывает, что экземпляру типа можно присвоить значение аргумента типа rvalue.
Требования
Тип T удовлетворяет требованиям MoveAssignable, если
заданы
-
t— изменяемое lvalue-выражение типаT, -
rv— rvalue-выражение типаT.
Следующие выражения должны быть допустимыми и иметь указанные эффекты.
| Выражение | Возвращаемый тип | Возвращаемое значение | Постусловия |
|---|---|---|---|
t = rv |
T& |
t | Если t и rv не ссылаются на один и тот же объект, значение t эквивалентно значению rv до присваивания. Новое значение |
Примечания
Типу не обязательно реализовывать оператор перемещающего присваивания, чтобы удовлетворять этому требованию к типу: оператор копирующего присваивания, принимающий параметр по значению или как const Type&, будет связываться с аргументом типа rvalue.
Если класс, удовлетворяющий требованиям MoveAssignable, реализует оператор перемещающего присваивания, он также может реализовать семантику перемещения, чтобы воспользоваться тем, что значение rv после присваивания не определено.
См. также
|
(C++11)(C++11)(C++11) | проверяет, имеет ли тип оператор перемещающего присваивания (шаблон класса) |
|
(C++26)(C++26)(C++26) | проверяет, имеет ли отражённый тип оператор перемещающего присваивания (функция) |
|
(C++20) | указывает, что значение типа можно присвоить из значения другого типа (концепт) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/named_req/MoveAssignable