CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
TypeListOps.hpp File Reference
#include "Concat.hpp"
#include "Map.hpp"
#include "MetaFor.hpp"
#include "Rename.hpp"
#include "Type.hpp"
#include "TypeList.hpp"
#include <tuple>
#include <type_traits>

Go to the source code of this file.

Classes

struct  CeresEngine::MPL::ExpandT
 

Namespaces

namespace  CeresEngine
 
namespace  CeresEngine::MPL
 

Macros

#define EXPAND(CODE)   CeresEngine::MPL::ExpandT{0, ((CODE), 0)...};
 

Typedefs

template<typename TTypeList >
using CeresEngine::MPL::Tuple = Rename< std::tuple, TTypeList >
 Type list as a tuple.
 
template<typename TTypeList >
using CeresEngine::MPL::TypeTuple = Tuple< Map< Type, TTypeList > >
 Type list as a tuple of Type<T>.
 
template<std::size_t TIndex, typename TTypeList >
using CeresEngine::MPL::Nth = std::tuple_element_t< TIndex, Tuple< TTypeList > >
 "Nth" element of a type list.
 
template<typename T , typename TTypeList >
using CeresEngine::MPL::PushBack = Concat< TTypeList, TypeList< T > >
 Adds a type to the back of a type list.
 
template<typename T , typename TTypeList >
using CeresEngine::MPL::PushFront = Concat< TypeList< T >, TTypeList >
 Adds a type to the front of a type list.
 
template<typename TTypeList >
using CeresEngine::MPL::Head = Nth< 0, TTypeList >
 First type of a type list.
 
template<typename TTypeList >
using CeresEngine::MPL::Tail = Nth< size< TTypeList >() - 1, TTypeList >
 Last type of a type list.
 

Functions

template<typename TTypeList >
constexpr auto CeresEngine::MPL::size () noexcept
 Size of a type list.
 
template<typename TTypeList , typename TFunction >
constexpr void CeresEngine::MPL::forTypes (TFunction &&mFunction) noexcept
 Execute a function for every type in a type list, wrapped in a Type<T>.
 

Macro Definition Documentation

◆ EXPAND

#define EXPAND (   CODE)    CeresEngine::MPL::ExpandT{0, ((CODE), 0)...};