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