fennec
Loading...
Searching...
No Matches
type_sequences.h File Reference

Type Sequences More...

#include <fennec/lang/detail/_type_sequences.h>

Go to the source code of this file.

Detailed Description

Author
Medusa Slockbower

Classes

struct  fennec::first_element< TypesT >
 Get the first element of a template parameter pack. More...
 
struct  fennec::nth_element< n, TypesT >
 Gets the type of the nth element of the type sequence TypesT... More...
 
struct  fennec::replace_first_element< ClassT, SubT >
 Take a Template with a Pack ClassT<ArgsT...> and replace the first ArgT of ArgsT... with SubT More...
 
struct  fennec::max_element_size< Ts >
 Gets the max value of the size of each type in the sequence, i.e. max(sizeof(Ts)...) More...
 
struct  fennec::find_element< T, Ts >
 Finds the index of T in Ts, if T is not found, results in sizeof...(Ts) More...
 
struct  fennec::search_element< SearchT, TypesT >
 Find the first element in TypesT... that satisfies SearchT<T> More...
 
struct  fennec::contains_element< T, Ts >
 Checks if the type sequence Ts... contains T More...
 
struct  fennec::is_unique< Ts >
 Checks if all types in a type sequence are unique. More...
 

Typedefs

template<typename... TypesT>
using fennec::first_element_t = typename first_element< TypesT... >::type
 alias for first_element<TypesT>::type
 
template<template< typename > typename SearchT, typename... TypesT>
using fennec::search_element_t = search_element< SearchT, TypesT... >::type
 Shorthand for search_element_t<T, Ts...>::type
 

Variables

template<typename... Ts>
constexpr size_t fennec::max_element_size_v = max_element_size<Ts...>::value
 Shorthand for max_element_size<Ts...>::value
 
template<typename T , typename... Ts>
constexpr size_t fennec::find_element_v = find_element<T, Ts...>::value
 Shorthand for find_element<T, Ts...>::value
 
template<typename T , typename... Ts>
constexpr bool fennec::contains_element_v = contains_element<T, Ts...>::value
 Shorthand for contains_element_v<T, Ts...>::value
 
template<typename... Ts>
constexpr bool fennec::is_unique_v = is_unique<Ts...>::value
 Shorthand for is_unique<Ts...>::value
 

Typedef Documentation

◆ search_element_t

template<template< typename > typename SearchT, typename... TypesT>
using fennec::search_element_t = typedef search_element<SearchT, TypesT...>::type
Template Parameters
SearchTA type that satisfies template<typename> and contains static constexpr bool value; to use for searching
TypesTThe type sequence to search

Variable Documentation

◆ max_element_size_v

template<typename... Ts>
constexpr size_t fennec::max_element_size_v = max_element_size<Ts...>::value
constexpr
Template Parameters
TsThe type sequence to check

◆ find_element_v

template<typename T , typename... Ts>
constexpr size_t fennec::find_element_v = find_element<T, Ts...>::value
constexpr
Template Parameters
TThe type to find
TsThe type sequence to check

◆ contains_element_v

template<typename T , typename... Ts>
constexpr bool fennec::contains_element_v = contains_element<T, Ts...>::value
constexpr
Template Parameters
TThe type to find
TsThe type sequence to check

◆ is_unique_v

template<typename... Ts>
constexpr bool fennec::is_unique_v = is_unique<Ts...>::value
constexpr
Template Parameters
TsThe type sequence to check