|
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) |
| 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) |
| 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) |
|
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) |
|
TaggedTuple & | operator= (tmpl::conditional_t< is_copy_assignable::value, TaggedTuple, tuples_detail::no_such_type > const &t) |
|
TaggedTuple & | operator= (tmpl::conditional_t< is_move_assignable::value, TaggedTuple, tuples_detail::no_such_type > &&t) |
|
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) |
|
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) |
|
void | swap (TaggedTuple &t) |
|
|
template<class Tag , class... LTags> |
constexpr const Tag::type & | get (const TaggedTuple< LTags... > &t) |
|
template<class Tag , class... LTags> |
constexpr Tag::type & | get (TaggedTuple< LTags... > &t) |
|
template<class Tag , class... LTags> |
constexpr const Tag::type && | get (const TaggedTuple< LTags... > &&t) |
|
template<class Tag , class... LTags> |
constexpr Tag::type && | get (TaggedTuple< LTags... > &&t) |
|
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 |