|
struct | smtk::detail::tuple_if_unique< T, Tuple > |
| If T is not in Tuple, return std::tuple<T>. More...
|
|
struct | smtk::detail::tuple_if_unique< T, std::tuple<> > |
|
struct | smtk::detail::tuple_if_unique< T, std::tuple< U, Ts... > > |
|
struct | smtk::detail::tuple_if_unique< T, std::tuple< T, Ts... > > |
|
struct | smtk::detail::tuple_if_not_base< T, Tuple > |
| If T is not a base of any types in Tuple, return std::tuple<T>. More...
|
|
struct | smtk::detail::tuple_if_not_base< T, std::tuple<> > |
|
struct | smtk::detail::tuple_if_not_base< T, std::tuple< U, Ts... > > |
|
struct | smtk::detail::remove_bases_from_tuple_lr< T, Args > |
| Given a tuple, starting with the first parameter and moving to the last, remove the parameter from the tuple if it is a base of any of the parameters to the right. More...
|
|
struct | smtk::detail::remove_bases_from_tuple_lr< std::tuple<> > |
|
struct | smtk::detail::remove_bases_from_tuple_lr< std::tuple< T > > |
|
struct | smtk::detail::remove_bases_from_tuple_lr< std::tuple< T, Args... > > |
|
struct | smtk::detail::untuple< T > |
| If T is a tuple containing a single type, return the type it contians. More...
|
|
struct | smtk::detail::untuple< std::tuple< T > > |
|
struct | smtk::flatten_tuple< T > |
| Takes a tuple of tuples and types and returns a tuple of the tuple contents and the plain types. More...
|
|
struct | smtk::flatten_tuple< std::tuple<> > |
|
struct | smtk::flatten_tuple< std::tuple< T, Args... > > |
|
struct | smtk::flatten_tuple< std::tuple< std::tuple< TupleArgs... >, Args... > > |
|
struct | smtk::unique_tuple< T, Args > |
| Takes a tuple of potentially duplicate types and returns a tuple with the duplicate types removed. More...
|
|
struct | smtk::unique_tuple< std::tuple<> > |
|
struct | smtk::unique_tuple< std::tuple< T > > |
|
struct | smtk::unique_tuple< std::tuple< T, Args... > > |
|
struct | smtk::reverse_tuple< T > |
| Takes a tuple and reverses its arguments. More...
|
|
struct | smtk::reverse_tuple< std::tuple< T > > |
|
struct | smtk::reverse_tuple< std::tuple< T, Args... > > |
|
struct | smtk::recursive< X, T > |
| Takes a template class and a tuple and returns a tuple of elements transformed by the template class, recursing through nested tuples if necessary. More...
|
|
struct | smtk::recursive< X, std::tuple< Args... > > |
|
struct | smtk::remove_bases_from_tuple< T > |
| Takes a tuple and removes any types that are bases of any other types in the tuple. More...
|
|
struct | smtk::remove_from_tuple< T, Tuple > |
| Takes a type and a tuple of types and returns a tuple with all of the original types sans the input type. More...
|
|
struct | smtk::remove_from_tuple< T, std::tuple< T, Args... > > |
|
struct | smtk::remove_from_tuple< T, std::tuple< X, Args... > > |
|
struct | smtk::remove_from_tuple< T, std::tuple<> > |
|
struct | smtk::tuple_index< T, Tuple > |
| Takes a type and a tuple of types and returns the index of the first instance of that type in the tuple. More...
|
|
struct | smtk::tuple_index< T, std::tuple< T, Types... > > |
|
struct | smtk::tuple_index< T, std::tuple< U, Types... > > |
|
struct | smtk::tuple_contains< T, Tuple > |
| Takes a type and a tuple of types and returns a bool indicating whether or not the type is in the tuple. More...
|
|
struct | smtk::tuple_contains< T, std::tuple<> > |
|
struct | smtk::tuple_contains< T, std::tuple< U, Ts... > > |
|
struct | smtk::tuple_contains< T, std::tuple< T, Ts... > > |
|
struct | smtk::identity< T > |
| Embeds a type in another class so its type information can be passed as a parameter. More...
|
|
struct | smtk::sequence<... > |
|
struct | smtk::index_sequence< N, S > |
|
struct | smtk::index_sequence< 0, S... > |
|
struct | smtk::detail::tuple_reduce_ii< I, RI, Reducer, Tuple > |
|
struct | smtk::detail::tuple_reduce_ii< 0, RI, Reducer, Tuple > |
|
struct | smtk::detail::tuple_reduce_ii< I, RI, Reducer, Tuple > |
|
struct | smtk::tuple_reduce< Reducer, Tuple, Start > |
| A reduce operation for tuples of typenames. More...
|
|
|
template<typename Functor , size_t I = 0, typename... Ts> |
std::enable_if< I==sizeof...(Ts), void >::type | smtk::apply (Functor &f, std::tuple< Ts... > tup) |
| Apply a functor to each element of a tuple. More...
|
|
template<typename Functor , size_t I = 0, typename... Ts> |
std::enable_if<(I< sizeof...(Ts)), void >::type | smtk::apply (Functor &f, std::tuple< Ts... > tup) |
|
template<typename Tuple , std::size_t I = 0, typename Functor > |
std::enable_if< I==std::tuple_size< Tuple >::value, void >::type | smtk::tuple_evaluate (Functor &f) |
| Invoke a Functor's evaluate() method on each type specified in a tuple. More...
|
|
template<typename Tuple , std::size_t I = 0, typename Functor > |
std::enable_if<(I< std::tuple_size< Tuple >::value), void >::type | smtk::tuple_evaluate (Functor &f) |
|
Tuple convenience functions