std::experimental::ranges::tagged_tuple - cppreference.com (original) (raw)

Convenience alias template for naming a ranges::tagged wrapping a std::tuple.

A TaggedType is a function type S(T), where S is a TagSpecifier and T is the type of the element.

tagged_tuple<S1(T1), ..., SN(TN)> is an alias for ranges::tagged<std::tuple<T1, ..., TN>, S1, ..., SN>.

[edit] Notes

Because a function type is used to "glue" the tag specifier and the corresponding element type together, the usual parameter type adjustments apply. In particular, top-level cv-qualifiers are removed and array types are adjusted to pointers: tagged_tuple<tag::in(const int* const), tag::out(int[])> is ranges::tagged<std::tuple<const int*, int*>, tag::in, tag::out>.

[edit] See also

TaggedType specifies that a type represents a tag specifier and its element type (concept) [edit]
tagged augument a tuple-like type with named accessors (class template) [edit]
tagged_pair alias template for a tagged std::pair(alias template)[edit]
make_tagged_pair convenience function for creating a tagged_pair (function template) [edit]
make_tagged_tuple convenience function for creating a tagged_tuple (function template) [edit]
inin1in2outout1out2funminmaxbeginend tag specifiers for use with ranges::tagged (class) [edit]