std::experimental::ranges::tagged<Base,Tags...>:: tagged
|
using
Base
::
Base
;
|
(1) | |
|
tagged
(
)
=
default
;
|
(2) | |
|
tagged
(
tagged
&&
that
)
=
default
;
|
(3) | |
|
tagged
(
const
tagged
&
that
)
=
default
;
|
(4) | |
|
tagged
(
Base
&&
that
)
noexcept
(
std::
is_nothrow_move_constructible
<
Base
>
::
value
)
requires MoveConstructible < Base > ; |
(5) | |
|
tagged
(
const
Base
&
that
)
noexcept
(
std::
is_nothrow_copy_constructible
<
Base
>
::
value
)
requires CopyConstructible < Base > ; |
(6) | |
|
template
<
class
Other
>
requires Constructible
<
Base, Other
>
|
(7) | |
|
template
<
class
Other
>
requires Constructible
<
Base,
const
Other
&
>
|
(8) | |
tagged
객체를 생성합니다.
tagged<Base, Tags...>
는
Base
의 생성자들을 상속합니다.
tagged
는 기본, 복사, 이동 생성자를 기본 구현(defaulted)하며, 이들은
Base
의 해당 생성자를 호출합니다.
Base
로부터 이동 생성자를 변환합니다.
Base
서브객체를
std
::
move
(
that
)
로 초기화합니다.
Base
로부터 변환 복사 생성자.
Base
서브오브젝트를
that
으로 초기화합니다.
tagged
특수화에서 일치하는 태그를 가진 이동 생성자로 변환합니다.
Base
하위 객체를
static_cast
<
Other
&&
>
(
that
)
로 초기화합니다.
tagged
특수화로부터 복사 생성자를 변환합니다.
Base
하위 객체를
static_cast
<
const
Other
&
>
(
that
)
로 초기화합니다.