std::experimental::ranges:: MoveConstructible
From cppreference.net
<
cpp
|
experimental
|
ranges
|
Определено в заголовочном файле
<experimental/ranges/concepts>
|
||
|
template
<
class
T
>
concept
bool
MoveConstructible
=
|
(ranges TS) | |
Концепция
MoveConstructible
выполняется, если
T
является ссылочным типом, или если это объектный тип, для которого объект может быть сконструирован из rvalue этого типа как в контексте прямой, так и копирующей инициализации, с обычной семантикой.
Более точно, если
T
является типом объекта, то
MoveConstructible<T>
удовлетворяется только при условии, что дано
-
rv, rvalue типаT, и -
u2, отдельный объект типаT, равныйrv,
следующие утверждения верны:
-
После определения
T u
=
rv
;
,
uравноu2; -
T{rv}равноu2; и -
Если
Tне квалифицирован как const, то результирующее состояниеrv(после вычисления определения/выражения в любом из вышеуказанных пунктов) является валидным, но неопределённым; в противном случае оно остаётся неизменным.
Смотрите также
|
(C++11)
(C++11)
(C++11)
|
проверяет, может ли тип быть сконструирован из rvalue-ссылки
(шаблон класса) |