CMS 3D CMS Logo

Classes | Namespaces | Typedefs | Functions | Variables
PortableCollectionCommon.h File Reference
#include <cstddef>
#include <type_traits>
#include <array>

Go to the source code of this file.

Classes

struct  portablecollection::CollectionImpl< Idx, T, Args >
 
struct  portablecollection::CollectionImpl< Idx, T >
 
struct  portablecollection::CollectionLeaf< Idx, T >
 
struct  portablecollection::Collections< Args >
 
struct  portablecollection::TupleTypeIndex< T, Tuple >
 
struct  portablecollection::TupleTypeIndex< T, std::tuple< T, Args... > >
 
struct  portablecollection::TupleTypeIndex< T, std::tuple< U, Args... > >
 

Namespaces

 portablecollection
 

Typedefs

template<typename T , typename... Args>
using portablecollection::TypeIndex = TupleTypeIndex< T, std::tuple< Args... > >
 
template<std::size_t Idx, typename... Args>
using portablecollection::TypeResolver = typename std::tuple_element< Idx, std::tuple< Args... > >::type
 

Functions

template<std::size_t Start, std::size_t End, std::size_t Inc = 1, typename F >
constexpr void portablecollection::constexpr_for (F &&f)
 

Variables

template<typename... Args>
constexpr std::size_t portablecollection::membersCount = sizeof...(Args)
 
template<typename T , typename... Args>
constexpr std::size_t portablecollection::typeCount = ((std::is_same<T, Args>::value ? 1 : 0) + ... + 0)
 
template<typename T , typename... Args>
constexpr std::size_t portablecollection::typeIndex = TypeIndex<T, Args...>::value