Пространства имён
Варианты
Действия

std::move_constructible

Материал из cppreference.com
< cpp‎ | concepts
 
 
 
Определено в заголовочном файле <concepts>
template< class T >
concept move_constructible = std::constructible_from<T, T> && std::convertible_to<T, T>;
(начиная с C++20)

Концепт move_constructible выполняется, если T является ссылочным типом, или это объектный тип, в котором объект этого типа может быть создан из правосторонней ссылки того-же типа, как при прямом, так и при копирующем контексте инициализации с обычной семантикой.

[править] Семантические требования

Если T является объектным типом, тогда move_constructible<T> моделируется только если даны

  • rv, правостороннее значение типа T, и
  • u2, конкретный объект типа T, равный rv,

следующее верно:

  • После определения T u = rv;, u равно u2;
  • T(rv) равно u2; и
  • Если T не является const-квалифицированным, тогда rv конечное состояние (после того, как определение/выражение оценивается в любом из случаев выше) допустимо, но неопределено; иначе он остаётся неизменным.

[править] Смотрите также

проверяет, может ли тип быть сконструирован из правосторонней ссылки
(шабл��н класса) [править]