tin  1.5.9
type_list.h File Reference

Small compile-time list and set utilities for C++ type tokens. More...

#include <cstddef>
#include <tuple>
#include <type_traits>
Include dependency graph for type_list.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 tsm
 
 tsm::detail
 

Typedefs

template<typename T >
using tsm::detail::front_type_t = typename front_type< T >::type
 
template<std::size_t Index, typename List >
using tsm::detail::type_at_t = typename type_at< Index, List >::type
 
template<typename T >
using tsm::detail::as_tuple_t = typename as_tuple< T >::type
 
template<typename T >
using tsm::detail::as_type_list_t = typename as_type_list< T >::type
 
template<typename... Lists>
using tsm::detail::concat_type_lists_t = typename concat_type_lists< Lists... >::type
 
template<template< typename > class Predicate, typename List >
using tsm::detail::filter_type_list_t = typename filter_type_list< Predicate, List >::type
 
template<template< class > class Wrapper, typename Tuple >
using tsm::detail::wrap_type = typename wrap_type_impl< Wrapper, Tuple >::type
 
template<typename T , typename Tuple >
using tsm::detail::append_unique = typename append_unique_impl< T, Tuple >::type
 
template<typename Set >
using tsm::detail::type_set_list_t = typename Set::list
 
template<typename List , typename StateSet >
using tsm::detail::retain_if_in_set_t = typename retain_if_in_set< List, StateSet >::type
 
template<typename Key , typename Map >
using tsm::detail::type_map_lookup_t = typename type_map_lookup< Key, Map >::type
 
template<typename EntryList >
using tsm::detail::type_map_from_entries_t = typename type_map_from_entries< EntryList >::type
 
template<typename Ts >
using tsm::detail::unique_tuple_t = typename unique_tuple< Ts >::type
 

Functions

template<typename T , typename... Ts>
consteval bool tsm::detail::contains_type (type_list< Ts... >)
 
template<typename T , typename... Ts>
consteval bool tsm::detail::contains_type (std::tuple< Ts... >)
 
template<typename T , typename... Ts>
consteval std::size_t tsm::detail::max_sizeof (type_list< T, Ts... >)
 
template<typename T , typename... Ts>
consteval std::size_t tsm::detail::max_sizeof (std::tuple< T, Ts... >)
 
template<typename T , typename... Ts>
consteval std::size_t tsm::detail::max_alignof (type_list< T, Ts... >)
 
template<typename T , typename... Ts>
consteval std::size_t tsm::detail::max_alignof (std::tuple< T, Ts... >)
 

Variables

template<typename Ts >
concept tsm::detail::type_list_like = type_list_traits::accepts<Ts>::value
 
template<typename List >
constexpr bool tsm::detail::empty_type_list_v = empty_type_list<List>::value
 

Detailed Description

Small compile-time list and set utilities for C++ type tokens.

Provides the minimal type-list operations used to filter, concatenate, deduplicate, index, and query authored state, event, transition, hierarchy, and policy types.