std::experimental::ranges::tagged<Base,Tags...>::tagged
工具组件 | ||||
函数对象 | ||||
元编程与类型特性 | ||||
有标签的 pair 与 tuple | ||||
成员函数 | ||||
tagged::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 ranges::MoveConstructible<Base>; |
(5) | |
tagged(const
Base&
that)
noexcept(std::is_nothrow_copy_constructible<Base>::value)
requires ranges::CopyConstructible<Base>; |
(6) | |
template
<class
Other>
requires ranges::Constructible<Base,
Other> |
(7) | |
template
<class
Other>
requires ranges::Constructible<Base,
const
Other&> |
(8) | |
构造 tagged
对象。
tagged<Base, Tags...>
继承 Base
的构造函数。
tagged
拥有默认化的默认、赋值和移动构造函数,它们调用 Base
的对应构造函数。Base
的转换移动构造函数。以
std::move(that) 初始化
Base
子对象。Base
的转换复制构造函数。以
that 初始化
Base
子对象。tagged
特化的转换移动构造函数。以 static_cast<Other&&>(that) 初始化
Base
子对象。tagged
特化的转换复制构造函数。以 static_cast<const Other&>(that) 初始化
Base
子对象。