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