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

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

Inheritance diagram for CeresEngine::Variant< Ts >:

Public Member Functions

constexpr std::size_t getIndex () const noexcept
 
template<typename T >
constexpr bool is () const noexcept
 
template<typename T >
constexpr Tas () &
 
template<typename T >
constexpr T && as () &&
 
template<typename T >
constexpr const Tas () const &
 
template<typename T >
constexpr const T && as () const &&
 
template<typename T >
constexpr std::add_pointer_t< TasIf () noexcept
 
template<typename T >
constexpr std::add_pointer_t< const TasIf () const noexcept
 
template<typename Visitor >
constexpr decltype(auto) visit (Visitor &&visitor) &
 
template<typename Visitor >
constexpr decltype(auto) visit (Visitor &&visitor) &&
 
template<typename Visitor >
constexpr decltype(auto) visit (Visitor &&visitor) const &
 
template<typename Visitor >
constexpr decltype(auto) visit (Visitor &&visitor) const &&
 

Private Types

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

Private Member Functions

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

Friends

constexpr bool operator== (const Variant &lhs, const Variant &rhs)
 
constexpr bool operator!= (const Variant &lhs, const Variant &rhs)
 
constexpr bool operator> (const Variant &lhs, const Variant &rhs)
 
constexpr bool operator>= (const Variant &lhs, const Variant &rhs)
 
constexpr bool operator< (const Variant &lhs, const Variant &rhs)
 
constexpr bool operator<= (const Variant &lhs, const Variant &rhs)
 

Member Typedef Documentation

◆ Base

template<typename... Ts>
using CeresEngine::Variant< Ts >::Base = std::variant<Ts...>
private

Member Function Documentation

◆ as() [1/4]

template<typename... Ts>
template<typename T >
constexpr T & CeresEngine::Variant< Ts >::as ( ) &
inlineconstexpr

◆ as() [2/4]

template<typename... Ts>
template<typename T >
constexpr T && CeresEngine::Variant< Ts >::as ( ) &&
inlineconstexpr

◆ as() [3/4]

template<typename... Ts>
template<typename T >
constexpr const T & CeresEngine::Variant< Ts >::as ( ) const &
inlineconstexpr

◆ as() [4/4]

template<typename... Ts>
template<typename T >
constexpr const T && CeresEngine::Variant< Ts >::as ( ) const &&
inlineconstexpr

◆ asIf() [1/2]

template<typename... Ts>
template<typename T >
constexpr std::add_pointer_t< const T > CeresEngine::Variant< Ts >::asIf ( ) const
inlineconstexprnoexcept

◆ asIf() [2/2]

template<typename... Ts>
template<typename T >
constexpr std::add_pointer_t< T > CeresEngine::Variant< Ts >::asIf ( )
inlineconstexprnoexcept

◆ base() [1/4]

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

◆ base() [2/4]

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

◆ base() [3/4]

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

◆ base() [4/4]

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

◆ getIndex()

template<typename... Ts>
constexpr std::size_t CeresEngine::Variant< Ts >::getIndex ( ) const
inlineconstexprnoexcept

◆ is()

template<typename... Ts>
template<typename T >
constexpr bool CeresEngine::Variant< Ts >::is ( ) const
inlineconstexprnoexcept

◆ visit() [1/4]

template<typename... Ts>
template<typename Visitor >
constexpr decltype(auto) CeresEngine::Variant< Ts >::visit ( Visitor &&  visitor) &
inlineconstexpr

◆ visit() [2/4]

template<typename... Ts>
template<typename Visitor >
constexpr decltype(auto) CeresEngine::Variant< Ts >::visit ( Visitor &&  visitor) &&
inlineconstexpr

◆ visit() [3/4]

template<typename... Ts>
template<typename Visitor >
constexpr decltype(auto) CeresEngine::Variant< Ts >::visit ( Visitor &&  visitor) const &
inlineconstexpr

◆ visit() [4/4]

template<typename... Ts>
template<typename Visitor >
constexpr decltype(auto) CeresEngine::Variant< Ts >::visit ( Visitor &&  visitor) const &&
inlineconstexpr

Friends And Related Symbol Documentation

◆ operator!=

template<typename... Ts>
constexpr bool operator!= ( const Variant< Ts > &  lhs,
const Variant< Ts > &  rhs 
)
friend

◆ operator<

template<typename... Ts>
constexpr bool operator< ( const Variant< Ts > &  lhs,
const Variant< Ts > &  rhs 
)
friend

◆ operator<=

template<typename... Ts>
constexpr bool operator<= ( const Variant< Ts > &  lhs,
const Variant< Ts > &  rhs 
)
friend

◆ operator==

template<typename... Ts>
constexpr bool operator== ( const Variant< Ts > &  lhs,
const Variant< Ts > &  rhs 
)
friend

◆ operator>

template<typename... Ts>
constexpr bool operator> ( const Variant< Ts > &  lhs,
const Variant< Ts > &  rhs 
)
friend

◆ operator>=

template<typename... Ts>
constexpr bool operator>= ( const Variant< Ts > &  lhs,
const Variant< Ts > &  rhs 
)
friend

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