Geant4-11
Public Member Functions | Private Types | Friends
PTL::Tuple< Head, Tail... > Class Template Reference

#include <Tuple.hh>

Inheritance diagram for PTL::Tuple< Head, Tail... >:
PTL::TupleElt< sizeof...(Tail), Head > PTL::Tuple< Tail... >

Public Member Functions

Head & head ()
 
const Head & head () const
 
Tuple< Tail... > & tail ()
 
const Tuple< Tail... > & tail () const
 

Private Types

using HeadElt = TupleElt< sizeof...(Tail), Head >
 

Friends

template<unsigned I, typename... Elements>
auto get (Tuple< Elements... > &t) -> decltype(get_height< sizeof...(Elements) - I - 1 >(t))
 

Detailed Description

template<typename Head, typename... Tail>
class PTL::Tuple< Head, Tail... >

Definition at line 109 of file Tuple.hh.

Member Typedef Documentation

◆ HeadElt

template<typename Head , typename... Tail>
using PTL::Tuple< Head, Tail... >::HeadElt = TupleElt<sizeof...(Tail), Head>
private

Definition at line 124 of file Tuple.hh.

Member Function Documentation

◆ head() [1/2]

template<typename Head , typename... Tail>
Head & PTL::Tuple< Head, Tail... >::head ( )
inline

Definition at line 118 of file Tuple.hh.

118{ return static_cast<HeadElt*>(this)->get(); }
friend auto get(Tuple< Elements... > &t) -> decltype(get_height< sizeof...(Elements) - I - 1 >(t))
Definition: Tuple.hh:139
TupleElt< sizeof...(Tail), Head > HeadElt
Definition: Tuple.hh:124

References PTL::get().

◆ head() [2/2]

template<typename Head , typename... Tail>
const Head & PTL::Tuple< Head, Tail... >::head ( ) const
inline

Definition at line 119 of file Tuple.hh.

119{ return static_cast<HeadElt const*>(this)->get(); }

References PTL::get().

◆ tail() [1/2]

template<typename Head , typename... Tail>
Tuple< Tail... > & PTL::Tuple< Head, Tail... >::tail ( )
inline

Definition at line 120 of file Tuple.hh.

120{ return *this; }

◆ tail() [2/2]

template<typename Head , typename... Tail>
const Tuple< Tail... > & PTL::Tuple< Head, Tail... >::tail ( ) const
inline

Definition at line 121 of file Tuple.hh.

121{ return *this; }

Friends And Related Function Documentation

◆ get

template<typename Head , typename... Tail>
template<unsigned I, typename... Elements>
auto get ( Tuple< Elements... > &  t) -> decltype(get_height<sizeof...(Elements) - I - 1>(t))
friend

Definition at line 139 of file Tuple.hh.

140{
141 return get_height<sizeof...(Elements) - I - 1>(t);
142}
T & get_height(TupleElt< H, T > &te)
Definition: Tuple.hh:95

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