std:: move_constructible
From cppreference.net
|
헤더에 정의됨
<concepts>
|
||
|
template
<
class
T
>
concept move_constructible = std:: constructible_from < T, T > && std:: convertible_to < T, T > ; |
(C++20부터) | |
move_constructible
개념은
T
가 참조 타입이거나, 해당 타입의 rvalue로부터 직접 초기화 및 복사 초기화 컨텍스트 모두에서 일반적인 의미론으로 객체를 생성할 수 있는 객체 타입일 때 충족됩니다.
의미론적 요구사항
만약
T
가 객체 타입이라면,
move_constructible<T>
는 다음이 주어졌을 때에만 모델됩니다
-
rv, 타입T의 rvalue, 그리고 -
u2,rv와 동일한 타입T의 별개 객체,
다음은 참입니다:
-
정의
T u
=
rv
;
이후,
u는u2와 동일하다; -
T(rv)는u2와 동일하다; 그리고 -
만약
T가 const-qualified가 아니라면,rv의 결과 상태(위 두 가지 경우 중 어느 하나에서 정의/표현식 평가 이후)는 유효하지만 지정되지 않는다; 그렇지 않으면 변경되지 않는다.
참조문헌
- C++23 표준 (ISO/IEC 14882:2024):
-
-
18.4.13 개념
move_constructible[concept.moveconstructible]
-
18.4.13 개념
- C++20 표준(ISO/IEC 14882:2020):
-
-
18.4.13 개념
move_constructible[concept.moveconstructible]
-
18.4.13 개념
참고 항목
|
(C++11)
(C++11)
(C++11)
|
타입이 우측값 참조로부터 생성될 수 있는지 확인합니다
(클래스 템플릿) |