|
| TaggedVariant ()=default |
| A default constructed instance has the first tag active.
|
|
| TaggedVariant (const TaggedVariant &)=default |
|
| TaggedVariant (TaggedVariant &&)=default |
|
TaggedVariant & | operator= (const TaggedVariant &)=default |
|
TaggedVariant & | operator= (TaggedVariant &&)=default |
|
template<typename Tag , typename... Args, Requires<(... or std::is_same_v< Tag, Tags >) and std::is_constructible_v< typename Tag::type, Args... > > = nullptr> |
constexpr | TaggedVariant (std::in_place_type_t< Tag >, Args &&... args) |
| Construct with Tag active, using args to construct the contained object. More...
|
|
template<typename... Args, Requires< sizeof...(Tags)==1 and std::is_constructible_v< typename tmpl::front< TaggedVariant >::type, Args... > > = nullptr> |
constexpr | TaggedVariant (Args &&... args) |
| Construct the contained object from args . Only available if the TaggedVariant only has one tag. More...
|
|
constexpr size_t | index () const |
| The index into the Tags... of the active object.
|
|
constexpr bool | valueless_by_exception () const |
| See std::variant::valueless_by_exception .
|
|
template<typename Tag , typename... Args, Requires<(... or std::is_same_v< Tag, Tags >) and std::is_constructible_v< typename Tag::type, Args... > > = nullptr> |
constexpr Tag::type & | emplace (Args &&... args) |
| Destroys the contained object and actives Tag , constructing a new value from args . More...
|
|
constexpr void | swap (TaggedVariant &other) noexcept(noexcept((... and(std::is_nothrow_move_constructible_v< typename Tags::type > and std::is_nothrow_swappable_v< typename Tags::type >)))) |
|
void | pup (PUP::er &p) |
|
template<typename... OtherTags, Requires< tmpl::size< tmpl::list_difference< TaggedVariant< OtherTags... >, TaggedVariant< Tags... > > >::value==0 > > |
constexpr TaggedVariant< Tags... > & | operator= (TaggedVariant< OtherTags... > &&other) |
|
|
template<typename... OtherTags, Requires< tmpl::size< tmpl::list_difference< TaggedVariant< OtherTags... >, TaggedVariant > >::value==0 > = nullptr> |
constexpr | TaggedVariant (TaggedVariant< OtherTags... > &&other) |
| A TaggedVariant can be implicitly move-converted to another variant with a superset of the tags. More...
|
|
template<typename... OtherTags, Requires< tmpl::size< tmpl::list_difference< TaggedVariant< OtherTags... >, TaggedVariant > >::value==0 > = nullptr> |
constexpr TaggedVariant & | operator= (TaggedVariant< OtherTags... > &&other) |
| A TaggedVariant can be implicitly move-converted to another variant with a superset of the tags. More...
|
|