Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
ElmTypes< X, typename > Struct Template Reference

#include "lib/meta/variadic-helper.hpp"

Description

template<class X, typename = void>
struct lib::meta::ElmTypes< X, typename >

Variadic type sequence builder.

This metaprogramming helper template provides an unified view to handle »tuple-like« types and variadic _type sequences.

  • the constant SIZ gives the number of elements
  • the nested type Idx can be used as index sequence
  • Seq is a variadic type sequence with the extracted types
  • Tup is a std::tuple over these types
  • the nested template Apply wraps each type into another template
  • Rebind likewise instantiates another template with the element types
  • AndAll applies a predicate and combines the result with logical and
  • OrAll similarly evaluates logical or on the application results

Definition at line 166 of file variadic-helper.hpp.

Public Types

using Idx = std::index_sequence< SIZ >
 
using Seq = Types< X >
 
using Tup = std::tuple< X >
 
template<template< class > class META>
using Apply = Types< META< X > >
 
template<template< typename... > class O>
using Rebind = O< X >
 
template<template< class > class PRED>
using AndAll = std::__and_< PRED< X > >
 
template<template< class > class PRED>
using OrAll = std::__or_< PRED< X > >
 

Static Public Attributes

static constexpr size_t SIZ = 1
 

Member Typedef Documentation

◆ Idx

template<class X , typename = void>
using Idx = std::index_sequence<SIZ>

Definition at line 169 of file variadic-helper.hpp.

◆ Seq

template<class X , typename = void>
using Seq = Types<X>

Definition at line 170 of file variadic-helper.hpp.

◆ Tup

template<class X , typename = void>
using Tup = std::tuple<X>

Definition at line 171 of file variadic-helper.hpp.

◆ Apply

template<class X , typename = void>
template<template< class > class META>
using Apply = Types<META<X> >

Definition at line 174 of file variadic-helper.hpp.

◆ Rebind

template<class X , typename = void>
template<template< typename... > class O>
using Rebind = O<X>

Definition at line 176 of file variadic-helper.hpp.

◆ AndAll

template<class X , typename = void>
template<template< class > class PRED>
using AndAll = std::__and_<PRED<X> >

Definition at line 178 of file variadic-helper.hpp.

◆ OrAll

template<class X , typename = void>
template<template< class > class PRED>
using OrAll = std::__or_<PRED<X> >

Definition at line 180 of file variadic-helper.hpp.

Member Data Documentation

◆ SIZ

template<class X , typename = void>
constexpr size_t SIZ = 1
staticconstexpr

Definition at line 168 of file variadic-helper.hpp.

+ Collaboration diagram for ElmTypes< X, typename >:

The documentation for this struct was generated from the following file: