|
|
void | pup (PUP::er &p) |
| |
|
| TaggedTuple (TaggedTuple const &)=default |
| |
|
| TaggedTuple (TaggedTuple &&)=default |
| |
| template<class... Us, typename std::enable_if< args_constructor< not pack_is_TaggedTuple< Us... >::value and sizeof...(Us)==sizeof...(Tags)>::template enable_explicit< Us... >()>::type * = nullptr> |
| constexpr | TaggedTuple (Us &&... us) noexcept(tuples_detail::all< std::is_nothrow_constructible< tuples_detail::TaggedTupleLeaf< Tags >, Us >::value... >::value) |
| | Construct a TaggedTuple with Args. More...
|
| |
| template<class... Us, typename std::enable_if< args_constructor< not pack_is_TaggedTuple< Us... >::value and sizeof...(Us)==sizeof...(Tags)>::template enable_implicit< Us... >()>::type * = nullptr> |
| constexpr | TaggedTuple (Us &&... us) noexcept(//NOLINT tuples_detail::all< std::is_nothrow_constructible< tuples_detail::TaggedTupleLeaf< Tags >, Us >::value... >::value) |
| | Construct a TaggedTuple with Args. More...
|
| |
|
template<class... UTags, typename std::enable_if< sizeof...(Tags)==sizeof...(UTags) and tuples_detail::all< std::is_constructible< tag_type< Tags >, const tag_type< UTags > & >::value... >::value and not tuples_detail::all< std::is_same< Tags, UTags >::value... >::value >::type * = nullptr> |
| constexpr | TaggedTuple (TaggedTuple< UTags... > const &t) noexcept(tuples_detail::all< std::is_nothrow_constructible< tag_type< Tags >, tag_type< UTags > const & >::value... >::value) |
| |
|
template<class... UTags, typename std::enable_if< sizeof...(Tags)==sizeof...(UTags) and tuples_detail::all< std::is_constructible< tag_type< Tags >, tag_type< UTags > && >::value... >::value and not tuples_detail::all< std::is_same< Tags, UTags >::value... >::value >::type * = nullptr> |
| constexpr | TaggedTuple (TaggedTuple< UTags... > &&t) noexcept(tuples_detail::all< std::is_nothrow_constructible< tag_type< Tags >, tag_type< UTags > && >::value... >::value) |
| |
|
TaggedTuple & | operator= (tmpl::conditional_t< is_copy_assignable::value, TaggedTuple, tuples_detail::no_such_type > const &t) noexcept(is_nothrow_copy_assignable::value) |
| |
|
TaggedTuple & | operator= (tmpl::conditional_t< is_move_assignable::value, TaggedTuple, tuples_detail::no_such_type > &&t) noexcept(is_nothrow_move_assignable::value) |
| |
|
template<class... UTags, typename std::enable_if< sizeof...(Tags)==sizeof...(UTags) and tuples_detail::all< std::is_assignable< tag_type< Tags > &, tag_type< UTags > const & >::value... >::value >::type * = nullptr> |
| TaggedTuple & | operator= (TaggedTuple< UTags... > const &t) noexcept(tuples_detail::all< std::is_nothrow_assignable< tag_type< Tags > &, tag_type< UTags > const & >::value... >::value) |
| |
|
template<class... UTags, typename std::enable_if< sizeof...(Tags)==sizeof...(UTags) and tuples_detail::all< std::is_assignable< tag_type< Tags > &, tag_type< UTags > && >::value... >::value >::type * = nullptr> |
| TaggedTuple & | operator= (TaggedTuple< UTags... > &&t) noexcept(tuples_detail::all< std::is_nothrow_assignable< tag_type< Tags > &, tag_type< UTags > && >::value... >::value) |
| |
|
void | swap (TaggedTuple &t) noexcept(tuples_detail::all< tuples_detail::is_nothrow_swappable_with< tuples_detail::TaggedTupleLeaf< Tags >, tuples_detail::TaggedTupleLeaf< Tags > >::value... >::value) |
| |
|
|
template<class Tag , class... LTags> |
| constexpr friend const Tag::type & | get (const TaggedTuple< LTags... > &t) noexcept |
| |
|
template<class Tag , class... LTags> |
| constexpr friend Tag::type & | get (TaggedTuple< LTags... > &t) noexcept |
| |
|
template<class Tag , class... LTags> |
| constexpr friend const Tag::type && | get (const TaggedTuple< LTags... > &&t) noexcept |
| |
|
template<class Tag , class... LTags> |
| constexpr friend Tag::type && | get (TaggedTuple< LTags... > &&t) noexcept |
| |
template<class... Tags>
class tuples::TaggedTuple< Tags >
An associative container that is indexed by structs.
A data structure that is indexed by Tags. A Tag is a struct that contains a type alias named type, which is the type of the object stored with index Tag.
- Template Parameters
-
| Tags | the tags of the objects to be placed in the tuple |