Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
lib::meta::anonymous_namespace{tuple-helper.hpp} Namespace Reference

Classes

struct  _InvokeMetafunTup
 
struct  _InvokeMetafunTup< META, FUN, TUP & >
 
struct  BuildTupleType
 
struct  BuildTupleType< Nil >
 
struct  BuildTupleType< Node< H, TAIL > >
 
struct  BuildTupleType< Types< TYPES... > >
 

Functions

template<typename FUN , typename TUP , size_t... Idx>
constexpr decltype(auto__unpack_and_apply (FUN &&f, TUP &&tup, std::index_sequence< Idx... >)
 

Variables

template<class FUN , class TUP >
constexpr bool can_nothrow_invoke_tup = _InvokeMetafunTup<std::is_nothrow_invocable,FUN,TUP>::Type::value
 

Class Documentation

◆ lib::meta::anonymous_namespace{tuple-helper.hpp}::_InvokeMetafunTup

struct lib::meta::anonymous_namespace{tuple-helper.hpp}::_InvokeMetafunTup
Class Members
typedef decay_t< TUP > Tupl
typedef Seq Elms
typedef Seq Args
typedef Type Type
+ Collaboration diagram for _InvokeMetafunTup< META, FUN, TUP >:

◆ lib::meta::anonymous_namespace{tuple-helper.hpp}::_InvokeMetafunTup< META, FUN, TUP & >

struct lib::meta::anonymous_namespace{tuple-helper.hpp}::_InvokeMetafunTup< META, FUN, TUP & >
Class Members
typedef decay_t< TUP > Tupl
typedef typename template Apply< add_lvalue_reference_t > Elms
typedef Seq Args
typedef Type Type
+ Collaboration diagram for _InvokeMetafunTup< META, FUN, TUP & >:

◆ lib::meta::anonymous_namespace{tuple-helper.hpp}::BuildTupleType< Nil >

struct lib::meta::anonymous_namespace{tuple-helper.hpp}::BuildTupleType< Nil >
Class Members
typedef tuple<> Type
+ Collaboration diagram for BuildTupleType< Nil >:

◆ lib::meta::anonymous_namespace{tuple-helper.hpp}::BuildTupleType< Node< H, TAIL > >

struct lib::meta::anonymous_namespace{tuple-helper.hpp}::BuildTupleType< Node< H, TAIL > >
Class Members
typedef Types< Node< H, TAIL > >::Seq Seq
typedef Type Type
+ Collaboration diagram for BuildTupleType< Node< H, TAIL > >:

◆ lib::meta::anonymous_namespace{tuple-helper.hpp}::BuildTupleType< Types< TYPES... > >

struct lib::meta::anonymous_namespace{tuple-helper.hpp}::BuildTupleType< Types< TYPES... > >
Class Members
typedef tuple< TYPES... > Type
+ Collaboration diagram for BuildTupleType< Types< TYPES... > >:

Function Documentation

◆ __unpack_and_apply()

template<typename FUN , typename TUP , size_t... Idx>
constexpr decltype(auto) __unpack_and_apply ( FUN &&  f,
TUP &&  tup,
std::index_sequence< Idx... >   
)
constexpr

invocation helper similar to C++17 — but preferring a custom get impl

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

Variable Documentation

◆ can_nothrow_invoke_tup

template<class FUN , class TUP >
constexpr bool can_nothrow_invoke_tup = _InvokeMetafunTup<std::is_nothrow_invocable,FUN,TUP>::Type::value
inlineconstexpr

Definition at line 196 of file tuple-helper.hpp.