Spec-Zone.ru › C++

std::move_constructible

Определено в заголовке <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 (после вычисления определения/выражения в любом из пунктов выше) является допустимым, но неопределённым; в противном случае оно остаётся неизменным.

См. также

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

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

Spec-Zone.ru

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