Spec-Zone.ru › C++

Требования C++ к типам: MoveConstructible (с C++11)

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

Требования

Тип T удовлетворяет MoveConstructible, если

Дано

  • rv, выражение rvalue типа T,
  • u, произвольное идентификатор.

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

Выражение Пост-условия
T u = rv; Значение u эквивалентно значению rv до инициализации.

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

T(rv) Значение T(rv) эквивалентно значению rv до инициализации.

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

Примечания

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

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

См. также

is_move_constructibleis_trivially_move_constructibleis_nothrow_move_constructible
(C++11)(C++11)(C++11)
проверяет, может ли тип быть создан из ссылки rvalue
(шаблон класса)
move_constructible
(C++20)
задает, что объект типа может быть перемещен
(концепт)

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

Spec-Zone.ru

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