DiFfRG
Loading...
Searching...
No Matches
DiFfRG::named_tuple< tuple_type, strs > Struct Template Reference

A class to store a tuple with elements that can be accessed by name. The names are stored as FixedString objects and their lookup is done at compile time. More...

#include <tuples.hh>

Public Member Functions

constexpr operator tuple_type & ()
 
 named_tuple (tuple_type &&t)
 
 named_tuple (tuple_type &t)
 
template<size_t idx>
auto & get ()
 
template<size_t idx>
const auto & get () const
 

Static Public Member Functions

template<typename... T>
static constexpr auto as (std::tuple< T... > &&tup)
 
template<typename... T>
static constexpr auto as (std::tuple< T... > &tup)
 
static consteval size_t get_idx (const char *name)
 

Public Attributes

tuple_type tuple
 

Static Public Attributes

static constexpr size_t size = sizeof...(strs)
 
static constexpr std::array< const char *, sizenames {{strs...}}
 

Detailed Description

template<typename tuple_type, FixedString... strs>
struct DiFfRG::named_tuple< tuple_type, strs >

A class to store a tuple with elements that can be accessed by name. The names are stored as FixedString objects and their lookup is done at compile time.

Template Parameters
tuple_typeThe type of the underlying tuple.
strsThe names of the elements in the tuple.

Constructor & Destructor Documentation

◆ named_tuple() [1/2]

template<typename tuple_type , FixedString... strs>
DiFfRG::named_tuple< tuple_type, strs >::named_tuple ( tuple_type && t)
inline

◆ named_tuple() [2/2]

template<typename tuple_type , FixedString... strs>
DiFfRG::named_tuple< tuple_type, strs >::named_tuple ( tuple_type & t)
inline

Member Function Documentation

◆ as() [1/2]

template<typename tuple_type , FixedString... strs>
template<typename... T>
static constexpr auto DiFfRG::named_tuple< tuple_type, strs >::as ( std::tuple< T... > && tup)
inlinestaticconstexpr

◆ as() [2/2]

template<typename tuple_type , FixedString... strs>
template<typename... T>
static constexpr auto DiFfRG::named_tuple< tuple_type, strs >::as ( std::tuple< T... > & tup)
inlinestaticconstexpr

◆ get() [1/2]

template<typename tuple_type , FixedString... strs>
template<size_t idx>
auto & DiFfRG::named_tuple< tuple_type, strs >::get ( )
inline

◆ get() [2/2]

template<typename tuple_type , FixedString... strs>
template<size_t idx>
const auto & DiFfRG::named_tuple< tuple_type, strs >::get ( ) const
inline

◆ get_idx()

template<typename tuple_type , FixedString... strs>
static consteval size_t DiFfRG::named_tuple< tuple_type, strs >::get_idx ( const char * name)
inlinestaticconsteval

◆ operator tuple_type &()

template<typename tuple_type , FixedString... strs>
DiFfRG::named_tuple< tuple_type, strs >::operator tuple_type & ( )
inlineconstexpr

Member Data Documentation

◆ names

template<typename tuple_type , FixedString... strs>
std::array<const char *, size> DiFfRG::named_tuple< tuple_type, strs >::names {{strs...}}
staticconstexpr

◆ size

template<typename tuple_type , FixedString... strs>
size_t DiFfRG::named_tuple< tuple_type, strs >::size = sizeof...(strs)
staticconstexpr

◆ tuple

template<typename tuple_type , FixedString... strs>
tuple_type DiFfRG::named_tuple< tuple_type, strs >::tuple

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