CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::Box::Iterable Class Reference

#include <CeresEngine/Reflection/Box.collection.hpp>

Inheritance diagram for CeresEngine::Box::Iterable:
CeresEngine::Box

Public Member Functions

 Iterable (const Box &other)
 
 Iterable (Box &&other) noexcept
 
 Iterable (const Iterable &)=default
 
Iterableoperator= (const Iterable &)=default
 
 Iterable (Iterable &&) noexcept=default
 
Iterableoperator= (Iterable &&) noexcept=default
 
Iterator begin () const
 Returns an iterator to the first element of the container.
 
Iterator cbegin () const
 Returns an iterator to the first element of the container.
 
Iterator end () const
 Returns an iterator to the element following the last element of the container.
 
Iterator cend () const
 
 Box () noexcept
 Creates a new variant holding an empty value.
 
 Box (const Box &other)
 Creates a new variant by copying another, if possible.
 
 Box (Box &&other) noexcept
 Creates a new variant by moving another, if possible.
 
template<typename T >
requires (!std::is_same_v<std::decay_t<T>, Box>)
 Box (T &&value)
 Creates a new variant from a C++ value.
 
template<typename T >
requires (!std::is_same_v<T, Box>)
 Box (std::reference_wrapper< T > value)
 Creates a new variant from a C++ value.
 
template<typename T , typename... Args>
requires (!std::is_same_v<T, Box>)
 Box (std::in_place_type_t< T >, Args &&... args)
 
 Box (const void *ptr, const TypeInfo *typeInfo)
 
- Public Member Functions inherited from CeresEngine::Box
 Box () noexcept
 Creates a new variant holding an empty value.
 
 Box (const Box &other)
 Creates a new variant by copying another, if possible.
 
Boxoperator= (const Box &other)
 Assigns a variant a new value by copying another, if possible.
 
 Box (Box &&other) noexcept
 Creates a new variant by moving another, if possible.
 
Boxoperator= (Box &&other) noexcept
 Assigns a variant a new value by moving another, if possible.
 
template<typename T >
requires (!std::is_same_v<std::decay_t<T>, Box>)
 Box (T &&value)
 Creates a new variant from a C++ value.
 
template<typename T >
requires (!std::is_same_v<std::decay_t<T>, Box>)
Boxoperator= (T &&value)
 Assigns the variant a new value a C++ value.
 
template<typename T >
requires (!std::is_same_v<T, Box>)
 Box (std::reference_wrapper< T > value)
 Creates a new variant from a C++ value.
 
template<typename T , typename... Args>
requires (!std::is_same_v<T, Box>)
 Box (std::in_place_type_t< T >, Args &&... args)
 
 Box (const void *ptr, const TypeInfo *typeInfo)
 
 ~Box () noexcept
 Destroys the variant. Will call the contained object destructor.
 
bool isSmall () const noexcept
 Determines if the value fits on the small buffer storage.
 
void clear () noexcept
 Clears the variant and makes it empty.
 
bool empty () const noexcept
 Checks if the variant is empty (i.e. holds no value).
 
 operator bool () const noexcept
 Checks if the variant is not empty (i.e. holds a value).
 
template<typename T >
bool eq (const T &value) const
 Checks if a variant holds the same value as another.
 
template<typename T >
bool neq (const T &value) const
 Checks if a variant holds the same value as another.
 
TypeID getTypeID () const noexcept
 Gets the ID of the type held by the variant.
 
Type getType () const noexcept
 Gets the type held by the variant.
 
Type getClassType () const noexcept
 Gets the type held by the variant.
 
const ClassgetClass () const noexcept
 
const EnumgetMetaEnum () const noexcept
 
template<typename T >
bool is () const
 Checks if the value held by the variant is T.
 
bool is (const Type &type) const
 
Box copy () const
 Makes a copy of the object.
 
Box ref () const &
 Gets a reference to the meta value.
 
Box cref () const &
 Gets a reference to the meta value.
 
Box rref () &&
 Gets a reference to the meta value.
 
Box ref () &&
 Gets a reference to the meta value.
 
template<typename T >
Tref () const &
 Gets the value of the variant as a reference to T.
 
template<>
Boxref () const &
 
template<typename T >
T && ref () &&
 Gets the value of the variant as a reference to T.
 
template<>
Box && ref () &&
 
template<typename T >
const Tcref () const
 Gets the value of the variant as a const reference to T.
 
template<>
const Boxcref () const
 
template<typename T >
T && rref () &&
 Gets the value of the variant as a r-value reference to T.
 
template<>
Box && rref () &&
 
voiddata () noexcept
 Returns pointer to decayed type.
 
const voiddata () const noexcept
 Returns pointer to decayed type.
 
template<typename T >
Tdata () const
 Gets the value of the variant as a pointer to const T.
 
template<typename T >
bool canConvert () const
 Checks if the value held by the variant is convertible to T.
 
bool canConvert (const TypeID &target) const
 Checks if the value held by the variant is convertible to T.
 
bool canConvert (const Type &target) const
 Checks if the value held by the variant is convertible to T.
 
bool canConvert (const TypeInfo &target) const
 Checks if the value held by the variant is convertible to T.
 
template<typename T >
T to () const &
 Gets the value of the variant as a T.
 
template<>
Box to () const &
 
Box to (const TypeID &target) const
 Gets the value of the variant as a T.
 
Box to (const Type &target) const
 Gets the value of the variant as a T.
 
Box to (const TypeInfo &target) const
 Gets the value of the variant as a T.
 
template<typename T >
void convert ()
 Converts the variant to type T.
 
template<typename T >
bool tryConvert ()
 Tries to convert the variant to type T.
 
Iterable asIterable () const &
 Views the Box as an Iterable type.
 
Iterable asIterable () &&
 
Iterator asIterator () const &
 Views the Box as an Iterator type.
 
Iterator asIterator () &&
 
Array asArray () const &
 Views the Box as an Array type.
 
Array asArray () &&
 
Map asMap () const &
 Views the Box as an Map type.
 
Map asMap () &&
 
Pointer asPointer () const &
 Views the Box as an Pointer type.
 
Pointer asPointer () &&
 

Private Types

using super = Box
 

Additional Inherited Members

- Static Public Member Functions inherited from CeresEngine::Box
template<typename T , typename... Args>
static Box create (Args &&... args)
 

Member Typedef Documentation

◆ super

Constructor & Destructor Documentation

◆ Iterable() [1/4]

◆ Iterable() [2/4]

CeresEngine::Box::Iterable::Iterable ( Box &&  other)
inlinenoexcept

◆ Iterable() [3/4]

◆ Iterable() [4/4]

Member Function Documentation

◆ begin()

Iterator CeresEngine::Box::Iterable::begin ( ) const

Returns an iterator to the first element of the container.

If the container is empty, the returned iterator will be equal to end().

◆ Box() [1/7]

CeresEngine::Box::Box ( )
noexcept

Creates a new variant holding an empty value.

◆ Box() [2/7]

CeresEngine::Box::Box ( Box &&  other)
noexcept

Creates a new variant by moving another, if possible.

◆ Box() [3/7]

CeresEngine::Box::Box ( const Box other)

Creates a new variant by copying another, if possible.

◆ Box() [4/7]

CeresEngine::Box::Box ( const void ptr,
const TypeInfo typeInfo 
)
explicit

◆ Box() [5/7]

template<typename T , typename... Args>
requires (!std::is_same_v<T, Box>)
CeresEngine::Box::Box ( std::in_place_type_t< T ,
Args &&...  args 
)
explicit

◆ Box() [6/7]

template<typename T >
requires (!std::is_same_v<T, Box>)
CeresEngine::Box::Box ( std::reference_wrapper< T value)

Creates a new variant from a C++ value.

◆ Box() [7/7]

template<typename T >
requires (!std::is_same_v<std::decay_t<T>, Box>)
CeresEngine::Box::Box ( T &&  value)

Creates a new variant from a C++ value.

◆ cbegin()

Iterator CeresEngine::Box::Iterable::cbegin ( ) const

Returns an iterator to the first element of the container.

If the container is empty, the returned iterator will be equal to end().

◆ cend()

Iterator CeresEngine::Box::Iterable::cend ( ) const

◆ end()

Iterator CeresEngine::Box::Iterable::end ( ) const

Returns an iterator to the element following the last element of the container.

This element acts as a placeholder; attempting to access it results in undefined behavior.

◆ operator=() [1/2]

Iterable & CeresEngine::Box::Iterable::operator= ( const Iterable )
default

◆ operator=() [2/2]

Iterable & CeresEngine::Box::Iterable::operator= ( Iterable &&  )
defaultnoexcept

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