SpECTRE
v2024.12.16
|
An associative container that is indexed by structs. More...
Public Types | |
using | tags_list = implementation defined |
Public Member Functions | |
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) |
Static Public Member Functions | |
static constexpr size_t | size () |
Friends | |
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) |
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.
Tags | the tags of the objects to be placed in the tuple |
|
inlineexplicitconstexpr |
Construct a TaggedTuple with Args.
Requires: std::is_convertible_v<Us, typename Tags::type>...
is true
|
inlineconstexpr |
Construct a TaggedTuple with Args.
Requires: std::is_convertible_v<Us, typename Tags::type>...
is true