Spec-Zone.ru › C++

Именованные требования C++: MoveAssignable (начиная с C++11)

Указывает, что экземпляру типа можно присвоить значение аргумента типа rvalue.

Требования

Тип T удовлетворяет требованиям MoveAssignable, если

заданы

  • t — изменяемое lvalue-выражение типа T,
  • rv — rvalue-выражение типа T.

Следующие выражения должны быть допустимыми и иметь указанные эффекты.

Выражение Возвращаемый тип Возвращаемое значение Постусловия
t = rv T& t Если t и rv не ссылаются на один и тот же объект, значение t эквивалентно значению rv до присваивания.

Новое значение rv не определено.

Примечания

Типу не обязательно реализовывать оператор перемещающего присваивания, чтобы удовлетворять этому требованию к типу: оператор копирующего присваивания, принимающий параметр по значению или как const Type&, будет связываться с аргументом типа rvalue.

Если класс, удовлетворяющий требованиям MoveAssignable, реализует оператор перемещающего присваивания, он также может реализовать семантику перемещения, чтобы воспользоваться тем, что значение rv после присваивания не определено.

См. также

is_move_assignableis_trivially_move_assignableis_nothrow_move_assignable
(C++11)(C++11)(C++11)
проверяет, имеет ли тип оператор перемещающего присваивания
(шаблон класса)
is_move_assignable_typeis_trivially_move_assignable_typeis_nothrow_move_assignable_type
(C++26)(C++26)(C++26)
проверяет, имеет ли отражённый тип оператор перемещающего присваивания
(функция)
assignable_from
(C++20)
указывает, что значение типа можно присвоить из значения другого типа
(концепт)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/named_req/MoveAssignable

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API