C++ именованные требования: MoveConstructible (начиная с C++11)
Материал из cppreference.com
Определяет данный экземпляр типа как такой, что может быть приравнен к правостороннему аргументу.
Требования
Тип T удовлетворяет MoveConstructible если
Даны:
rv, правостороннее выражение типаTu, произвольный идентификатор
Эти выражения должны быть допустимыми и иметь следующие эффекты:
| Выражение | Постусловия |
|---|---|
T u = rv;
|
Значение u равно значению rv до инизиализации.
Новое значение |
T(rv)
|
Значение T(rv) равно значению rv до инициализации.
Новое значение |
Примечания
Класс не обязан обеспечивать конструктор перемещения, чтобы удовлетворять этому требованию к типу: копирующий конструктор, который принимает const T& аргумент может быть использован как правостороннеевыражение.
Если MoveConstructible осуществляет конструктор перемещения, оно может также реализовывать семантику перемещения, реализуя важное преимущество того факта, что значение rv после создания неопределен.
Смотри также
(C++11)(C++11)(C++11) |
проверяет, может ли тип быть сконструирован из правосторонней ссылки (шаблон класса) |
(C++20) |
указывает, что объект типа может быть сконструирован перемещением (концепт) |