Namespaces
Variants

std::experimental::ranges:: MoveConstructible

From cppreference.net
template < class T >

concept bool MoveConstructible =

Constructible < T, T > && ConvertibleTo < T, T > ;
(ranges TS)

T 为引用类型,或作为对象类型时,若该类型的对象能够通过右值在直接初始化和拷贝初始化上下文中按照常规语义构造,则满足 MoveConstructible 概念。

更准确地说,如果 T 是对象类型,则仅当满足以下条件时 MoveConstructible<T> 才成立:

  • rv ,一个类型为 T 的右值,以及
  • u2 ,一个类型为 T 且等于 rv 的不同对象,

以下情况为真:

  • 在定义 T u = rv ; 之后, u 等于 u2
  • T{rv} 等于 u2 ;且
  • T 非 const 限定,则 rv 的最终状态(在上述任一条目中的定义/表达式求值后)有效但未指定;否则其状态保持不变。

参见

检查类型是否可以从右值引用构造
(类模板)