CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::Tuple< Ts > Class Template Reference

Tuple is a fixed-size collection of heterogeneous values. More...

#include <CeresEngine/Foundation/Container/Tuple.hpp>

Inheritance diagram for CeresEngine::Tuple< Ts >:

Public Types

template<std::size_t I>
using ElementType = typename std::tuple_element< I, Base >::type
 

Public Member Functions

template<typename T >
constexpr Tget () &
 
template<typename T >
constexpr T && get () &&
 
template<typename T >
constexpr const Tget () const &
 
template<typename T >
constexpr const T && get () const &&
 
template<std::size_t I>
constexpr ElementType< I > & get () &
 
template<std::size_t I>
constexpr ElementType< I > && get () &&
 
template<std::size_t I>
constexpr const ElementType< I > & get () const &
 
template<std::size_t I>
constexpr const ElementType< I > && get () const &&
 
template<typename Function >
decltype(autoapply (Function &&function) &
 
template<typename Function >
decltype(autoapply (Function &&function) &&
 
template<typename Function >
decltype(autoapply (Function &&function) const &
 
template<typename Function >
decltype(autoapply (Function &&function) const &&
 

Private Types

using Base = std::tuple< Ts... >
 

Private Member Functions

Basebase () &
 
Base && base () &&
 
const Basebase () const &
 
const Base && base () const &&
 

Friends

template<class... TTypes, class... UTypes>
constexpr bool operator== (const Tuple< TTypes... > &lhs, const Tuple< UTypes... > &rhs)
 
template<class... TTypes, class... UTypes>
constexpr bool operator!= (const Tuple< TTypes... > &lhs, const Tuple< UTypes... > &rhs)
 
template<class... TTypes, class... UTypes>
constexpr bool operator< (const Tuple< TTypes... > &lhs, const Tuple< UTypes... > &rhs)
 
template<class... TTypes, class... UTypes>
constexpr bool operator<= (const Tuple< TTypes... > &lhs, const Tuple< UTypes... > &rhs)
 
template<class... TTypes, class... UTypes>
constexpr bool operator> (const Tuple< TTypes... > &lhs, const Tuple< UTypes... > &rhs)
 
template<class... TTypes, class... UTypes>
constexpr bool operator>= (const Tuple< TTypes... > &lhs, const Tuple< UTypes... > &rhs)
 

Detailed Description

template<typename... Ts>
class CeresEngine::Tuple< Ts >

Tuple is a fixed-size collection of heterogeneous values.

It is a generalization of Pair.

Member Typedef Documentation

◆ Base

template<typename... Ts>
using CeresEngine::Tuple< Ts >::Base = std::tuple<Ts...>
private

◆ ElementType

template<typename... Ts>
template<std::size_t I>
using CeresEngine::Tuple< Ts >::ElementType = typename std::tuple_element<I, Base>::type

Member Function Documentation

◆ apply() [1/4]

template<typename... Ts>
template<typename Function >
decltype(auto) CeresEngine::Tuple< Ts >::apply ( Function &&  function) &
inline

◆ apply() [2/4]

template<typename... Ts>
template<typename Function >
decltype(auto) CeresEngine::Tuple< Ts >::apply ( Function &&  function) &&
inline

◆ apply() [3/4]

template<typename... Ts>
template<typename Function >
decltype(auto) CeresEngine::Tuple< Ts >::apply ( Function &&  function) const &
inline

◆ apply() [4/4]

template<typename... Ts>
template<typename Function >
decltype(auto) CeresEngine::Tuple< Ts >::apply ( Function &&  function) const &&
inline

◆ base() [1/4]

template<typename... Ts>
Base & CeresEngine::Tuple< Ts >::base ( ) &
inlineprivate

◆ base() [2/4]

template<typename... Ts>
Base && CeresEngine::Tuple< Ts >::base ( ) &&
inlineprivate

◆ base() [3/4]

template<typename... Ts>
const Base & CeresEngine::Tuple< Ts >::base ( ) const &
inlineprivate

◆ base() [4/4]

template<typename... Ts>
const Base && CeresEngine::Tuple< Ts >::base ( ) const &&
inlineprivate

◆ get() [1/8]

template<typename... Ts>
template<typename T >
constexpr T & CeresEngine::Tuple< Ts >::get ( ) &
inlineconstexpr

◆ get() [2/8]

template<typename... Ts>
template<std::size_t I>
constexpr ElementType< I > & CeresEngine::Tuple< Ts >::get ( ) &
inlineconstexpr

◆ get() [3/8]

template<typename... Ts>
template<typename T >
constexpr T && CeresEngine::Tuple< Ts >::get ( ) &&
inlineconstexpr

◆ get() [4/8]

template<typename... Ts>
template<std::size_t I>
constexpr ElementType< I > && CeresEngine::Tuple< Ts >::get ( ) &&
inlineconstexpr

◆ get() [5/8]

template<typename... Ts>
template<typename T >
constexpr const T & CeresEngine::Tuple< Ts >::get ( ) const &
inlineconstexpr

◆ get() [6/8]

template<typename... Ts>
template<std::size_t I>
constexpr const ElementType< I > & CeresEngine::Tuple< Ts >::get ( ) const &
inlineconstexpr

◆ get() [7/8]

template<typename... Ts>
template<typename T >
constexpr const T && CeresEngine::Tuple< Ts >::get ( ) const &&
inlineconstexpr

◆ get() [8/8]

template<typename... Ts>
template<std::size_t I>
constexpr const ElementType< I > && CeresEngine::Tuple< Ts >::get ( ) const &&
inlineconstexpr

Friends And Related Symbol Documentation

◆ operator!=

template<typename... Ts>
template<class... TTypes, class... UTypes>
constexpr bool operator!= ( const Tuple< TTypes... > &  lhs,
const Tuple< UTypes... > &  rhs 
)
friend

◆ operator<

template<typename... Ts>
template<class... TTypes, class... UTypes>
constexpr bool operator< ( const Tuple< TTypes... > &  lhs,
const Tuple< UTypes... > &  rhs 
)
friend

◆ operator<=

template<typename... Ts>
template<class... TTypes, class... UTypes>
constexpr bool operator<= ( const Tuple< TTypes... > &  lhs,
const Tuple< UTypes... > &  rhs 
)
friend

◆ operator==

template<typename... Ts>
template<class... TTypes, class... UTypes>
constexpr bool operator== ( const Tuple< TTypes... > &  lhs,
const Tuple< UTypes... > &  rhs 
)
friend

◆ operator>

template<typename... Ts>
template<class... TTypes, class... UTypes>
constexpr bool operator> ( const Tuple< TTypes... > &  lhs,
const Tuple< UTypes... > &  rhs 
)
friend

◆ operator>=

template<typename... Ts>
template<class... TTypes, class... UTypes>
constexpr bool operator>= ( const Tuple< TTypes... > &  lhs,
const Tuple< UTypes... > &  rhs 
)
friend

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