SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
type_lists.hpp File Reference
#include <array>
#include <cstddef>
#include <type_traits>
#include "serif/utils/dependencies/key_list.hpp"
Include dependency graph for type_lists.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  serif::utils::dependencies::detail::KeyListSize< KeyList< Keys... > >
 
struct  serif::utils::dependencies::detail::AppendUnique< KeyList< Keys... >, T >
 
struct  serif::utils::dependencies::detail::AppendKeys< ResultT, Keys >
 
struct  serif::utils::dependencies::detail::AppendKeys< ResultT, FirstT, Rest... >
 
struct  serif::utils::dependencies::detail::MergeKeyLists< ResultT, Lists >
 
struct  serif::utils::dependencies::detail::MergeKeyLists< ResultT, KeyList< Keys... >, Rest... >
 

Namespaces

namespace  serif
 
namespace  serif::utils
 
namespace  serif::utils::dependencies
 
namespace  serif::utils::dependencies::detail
 

Functions

template<typename KeyT, typename... Types>
consteval std::size_t serif::utils::dependencies::detail::type_index (types::TypeList< Types... >)
 Locate a type without requiring the types themselves to be constructible.
 

Variables

template<typename KeyT, typename KeysT>
constexpr bool serif::utils::dependencies::detail::contains_key_v = false
 
template<typename KeyT, typename... Keys>
constexpr bool serif::utils::dependencies::detail::contains_key_v< KeyT, KeyList< Keys... > > = type_index<KeyT>(types::TypeList<Keys...>{}) < sizeof...(Keys)
 
template<typename RequiredT, typename AvailableT>
constexpr bool serif::utils::dependencies::detail::key_list_subset_v = false
 
template<typename... Keys, typename AvailableT>
constexpr bool serif::utils::dependencies::detail::key_list_subset_v< KeyList< Keys... >, AvailableT >