Extensions for the STL tuple class. More...
Go to the source code of this file.
Namespaces | |
| namespace | bbm |
| namespace | std |
Typedefs | |
| template<typename T > | |
| using | to_tuple_t = decltype(to_tuple(std::declval< T >())) |
| type of converting a type that supports std::get to a tuple | |
| template<typename T > | |
| using | value_copy_tuple_t = decltype(value_copy_tuple(std::declval< std::decay_t< T > >())) |
| value-copy type of a tuple. | |
| template<typename... Ts> | |
| using | tuple_cat_t = decltype(std::tuple_cat(std::declval< Ts >()...)) |
| tuple_cat_t | |
| template<size_t START, size_t COUNT, typename TUP > | |
| using | subtuple_t = decltype(subtuple< START, COUNT >(std::declval< TUP >())) |
| subtuple type | |
| template<typename T > | |
| using | tuple_flatten_t = decltype(tuple_flatten(std::declval< std::decay_t< T > >())) |
| flattened tuple type | |
| template<typename T > | |
| using | tuple_add_const_t = decltype(tuple_add_const(std::declval< std::decay_t< T > >())) |
| tuple_add_const type | |
| template<typename T > | |
| using | tuple_remove_const_t = decltype(tuple_remove_const(std::declval< std::decay_t< T > >())) |
| tuple_remove_const type | |
Functions | |
| template<typename T > requires concepts::gettable<T> | |
| auto | to_tuple (T &&t) |
| Create a tuple from any other type that supports std::get. | |
| template<typename... ARGS> | |
| constexpr auto | make_ref_tuple (ARGS &&... args) |
| Make a tuple of references. | |
| template<typename... ARGS> | |
| constexpr auto | value_copy_tuple (const std::tuple< ARGS... > &tup) |
| Value-copy a tuple. | |
| template<size_t START, size_t COUNT, typename TUP > requires is_tuple_v<TUP> && ((START+COUNT) <= std::tuple_size_v<std::decay_t<TUP>>) | |
| constexpr auto | subtuple (TUP &&tup) |
| subtuple | |
| template<typename T > | |
| constexpr auto | tuple_flatten (T &&t) |
| Recursively flatten a tuple. | |
| template<typename T > | |
| constexpr auto | tuple_add_const (T &&t) |
| tuple_add_const to each element | |
| template<typename T > | |
| constexpr auto | tuple_remove_const (T &&t) |
| tuple_remove_const from each element | |
| template<typename... Ts> | |
| std::ostream & | operator<< (std::ostream &s, const std::tuple< Ts... > &tup) |
| print a tuple | |
Extensions for the STL tuple class.