Wildmeshing Toolkit
wmtk::utils::metaprogramming::DerivedReferenceWrapperVariantTraits< BaseType_, DerivedTypes > Struct Template Reference

#include <DerivedReferenceWrapperVariantTraits.hpp>

Public Types

using BaseType = BaseType_
 
using DerivedTypesTuple = std::tuple< DerivedTypes... >
 
using ReferenceTuple = std::tuple< std::reference_wrapper< DerivedTypes >... >
 
using ConstReferenceTuple = std::tuple< std::reference_wrapper< const DerivedTypes >... >
 
using AllReferenceTuple = tuple::concatenate_types_t< ReferenceTuple, ConstReferenceTuple >
 
using ReferenceVariant = tuple::as_variant_type_t< ReferenceTuple >
 
using ConstReferenceVariant = tuple::as_variant_type_t< ConstReferenceTuple >
 
using AllReferenceVariant = tuple::as_variant_type_t< AllReferenceTuple >
 
template<bool IsConst>
using ReferenceTuple_const = std::conditional_t< IsConst, ConstReferenceTuple, ReferenceTuple >
 
template<bool IsConst>
using ReferenceVariant_const = std::conditional_t< IsConst, ConstReferenceVariant, ReferenceVariant >
 

Static Public Member Functions

static size_t get_index (const BaseType &t)
 

Detailed Description

template<typename BaseType_, typename... DerivedTypes>
struct wmtk::utils::metaprogramming::DerivedReferenceWrapperVariantTraits< BaseType_, DerivedTypes >

Definition at line 9 of file DerivedReferenceWrapperVariantTraits.hpp.

Member Typedef Documentation

◆ AllReferenceTuple

template<typename BaseType_ , typename... DerivedTypes>
using wmtk::utils::metaprogramming::DerivedReferenceWrapperVariantTraits< BaseType_, DerivedTypes >::AllReferenceTuple = tuple::concatenate_types_t<ReferenceTuple, ConstReferenceTuple>

Definition at line 19 of file DerivedReferenceWrapperVariantTraits.hpp.

◆ AllReferenceVariant

template<typename BaseType_ , typename... DerivedTypes>
using wmtk::utils::metaprogramming::DerivedReferenceWrapperVariantTraits< BaseType_, DerivedTypes >::AllReferenceVariant = tuple::as_variant_type_t<AllReferenceTuple>

Definition at line 24 of file DerivedReferenceWrapperVariantTraits.hpp.

◆ BaseType

template<typename BaseType_ , typename... DerivedTypes>
using wmtk::utils::metaprogramming::DerivedReferenceWrapperVariantTraits< BaseType_, DerivedTypes >::BaseType = BaseType_

Definition at line 11 of file DerivedReferenceWrapperVariantTraits.hpp.

◆ ConstReferenceTuple

template<typename BaseType_ , typename... DerivedTypes>
using wmtk::utils::metaprogramming::DerivedReferenceWrapperVariantTraits< BaseType_, DerivedTypes >::ConstReferenceTuple = std::tuple<std::reference_wrapper<const DerivedTypes>...>

Definition at line 17 of file DerivedReferenceWrapperVariantTraits.hpp.

◆ ConstReferenceVariant

template<typename BaseType_ , typename... DerivedTypes>
using wmtk::utils::metaprogramming::DerivedReferenceWrapperVariantTraits< BaseType_, DerivedTypes >::ConstReferenceVariant = tuple::as_variant_type_t<ConstReferenceTuple>

Definition at line 23 of file DerivedReferenceWrapperVariantTraits.hpp.

◆ DerivedTypesTuple

template<typename BaseType_ , typename... DerivedTypes>
using wmtk::utils::metaprogramming::DerivedReferenceWrapperVariantTraits< BaseType_, DerivedTypes >::DerivedTypesTuple = std::tuple<DerivedTypes...>

Definition at line 14 of file DerivedReferenceWrapperVariantTraits.hpp.

◆ ReferenceTuple

template<typename BaseType_ , typename... DerivedTypes>
using wmtk::utils::metaprogramming::DerivedReferenceWrapperVariantTraits< BaseType_, DerivedTypes >::ReferenceTuple = std::tuple<std::reference_wrapper<DerivedTypes>...>

Definition at line 16 of file DerivedReferenceWrapperVariantTraits.hpp.

◆ ReferenceTuple_const

template<typename BaseType_ , typename... DerivedTypes>
template<bool IsConst>
using wmtk::utils::metaprogramming::DerivedReferenceWrapperVariantTraits< BaseType_, DerivedTypes >::ReferenceTuple_const = std::conditional_t<IsConst, ConstReferenceTuple, ReferenceTuple>

Definition at line 29 of file DerivedReferenceWrapperVariantTraits.hpp.

◆ ReferenceVariant

template<typename BaseType_ , typename... DerivedTypes>
using wmtk::utils::metaprogramming::DerivedReferenceWrapperVariantTraits< BaseType_, DerivedTypes >::ReferenceVariant = tuple::as_variant_type_t<ReferenceTuple>

Definition at line 22 of file DerivedReferenceWrapperVariantTraits.hpp.

◆ ReferenceVariant_const

template<typename BaseType_ , typename... DerivedTypes>
template<bool IsConst>
using wmtk::utils::metaprogramming::DerivedReferenceWrapperVariantTraits< BaseType_, DerivedTypes >::ReferenceVariant_const = std::conditional_t<IsConst, ConstReferenceVariant, ReferenceVariant>

Definition at line 31 of file DerivedReferenceWrapperVariantTraits.hpp.

Member Function Documentation

◆ get_index()

template<typename BaseType_ , typename... DerivedTypes>
static size_t wmtk::utils::metaprogramming::DerivedReferenceWrapperVariantTraits< BaseType_, DerivedTypes >::get_index ( const BaseType t)
static

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