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

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

Inheritance diagram for CeresEngine::Box::Map:
CeresEngine::Box

Public Member Functions

 Map (const Box &other)
 
 Map (Box &&other) noexcept
 
 Map (const Map &)=default
 
Mapoperator= (const Map &)=default
 
 Map (Map &&) noexcept=default
 
Mapoperator= (Map &&) noexcept=default
 
Box operator[] (Box &&key) const
 
Box at (Box &&key) const
 Returns a reference to the element at specified location position.
 
Box empty () const
 Checks if the container has no elements, i.e.
 
size_t size () const
 Returns the number of elements in the container, i.e.
 
void clear () const
 Erases all elements from the container.
 
Iterator insert (Box &&key, Box &&value) const
 Inserts elements at the specified location in the container.
 
Iterator insert (Box &&key, const Box &value) const
 
Iterator eraseIterator (const Iterator &position) const
 Erases the specified elements from the container.
 
Iterator erase (Box &&key) const
 
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

using CeresEngine::Box::Map::super = Box
private

Constructor & Destructor Documentation

◆ Map() [1/4]

CeresEngine::Box::Map::Map ( const Box other)
inline

◆ Map() [2/4]

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

◆ Map() [3/4]

CeresEngine::Box::Map::Map ( const Map )
default

◆ Map() [4/4]

CeresEngine::Box::Map::Map ( Map &&  )
defaultnoexcept

Member Function Documentation

◆ at()

Box CeresEngine::Box::Map::at ( Box &&  key) const

Returns a reference to the element at specified location position.

Returns
A reference to the requested element.

◆ begin()

Iterator CeresEngine::Box::Map::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::Map::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::Map::cend ( ) const

◆ clear()

void CeresEngine::Box::Map::clear ( ) const

Erases all elements from the container.

After this call, size() returns zero.

Invalidates any references, pointers, or iterators referring to contained elements. Any past-the-end iterators are also invalidated.

Leaves the capacity() (if supported) unchanged.

◆ empty()

Box CeresEngine::Box::Map::empty ( ) const

Checks if the container has no elements, i.e.

whether begin() == end().

◆ end()

Iterator CeresEngine::Box::Map::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.

◆ erase()

Iterator CeresEngine::Box::Map::erase ( Box &&  key) const

◆ eraseIterator()

Iterator CeresEngine::Box::Map::eraseIterator ( const Iterator position) const

Erases the specified elements from the container.

Removes the element at position.

Invalidates iterators and references at or after the point of the erase, including the end() iterator. The iterator pos must be valid and dereferenceable. Thus the end() iterator (which is valid, but is not dereferenceable) cannot be used as a value for position. The iterator first does not need to be dereferenceable if first == last: erasing an empty range is a no-op.

Parameters
positionThe iterator to the element to remove.
Returns
The iterator following the last removed element.

◆ insert() [1/2]

Iterator CeresEngine::Box::Map::insert ( Box &&  key,
Box &&  value 
) const

Inserts elements at the specified location in the container.

Inserts value before position.

Parameters
positionThe iterator before which the content will be inserted (position may be the end() iterator).
valueThe element value to insert.
Returns
An iterator pointing to the inserted value.

◆ insert() [2/2]

Iterator CeresEngine::Box::Map::insert ( Box &&  key,
const Box value 
) const

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ operator[]()

Box CeresEngine::Box::Map::operator[] ( Box &&  key) const

◆ size()

size_t CeresEngine::Box::Map::size ( ) const

Returns the number of elements in the container, i.e.

std::distance(begin(), end()).


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