std::experimental::ranges::tagged::tagged(3) | C++ Standard Libary | std::experimental::ranges::tagged::tagged(3) |
NAME¶
std::experimental::ranges::tagged::tagged - std::experimental::ranges::tagged::tagged
Synopsis¶
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) (5)
requires MoveConstructible<Base>;
tagged(const Base& that)
noexcept(std::is_nothrow_copy_constructible<Base>::value) (6)
requires CopyConstructible<Base>;
template <class Other>
requires Constructible<Base, Other> (7)
constexpr tagged(ranges::tagged<Other, Tags...> && that)
noexcept(std::is_nothrow_constructible<Base, Other>::value);
template <class Other>
requires Constructible<Base, const Other&> (8)
constexpr tagged(const ranges::tagged<Other, Tags...> &that);
Constructs a tagged object.
1) tagged<Base, Tags...> inherits the constructors of Base.
2-4) tagged has defaulted default, copy, and move constructors that invoke
the
corresponding constructor of Base.
5) Converting move constructor from Base. Initializes the Base subobject with
std::move(that).
6) Converting copy constructor from Base. Initializes the Base subobject with
that.
7) Converting move constructor from a different tagged specialization with
matching
tags. Initializes the Base subobject with
static_cast<Other&&>(that).
8) Converting copy constructor from a different tagged specialization with
matching
tags. Initializes the Base subobject with static_cast<const
Other&>(that).
2022.07.31 | http://cppreference.com |