EnTT 3.13.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > > Class Template Reference

Default constructor. More...

#include <storage.hpp>

Inheritance diagram for entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >:
Inheritance graph
[legend]
Collaboration diagram for entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >:
Collaboration graph
[legend]

Public Types

using base_type = basic_sparse_set< Entity, typename alloc_traits::template rebind_alloc< Entity > >
 Base type.
 
using value_type = Type
 Type of the objects assigned to entities.
 
using traits_type = component_traits< value_type >
 Component traits.
 
using entity_type = Entity
 Underlying entity identifier.
 
using size_type = std::size_t
 Unsigned integer type.
 
using allocator_type = Allocator
 Allocator type.
 
using iterable = iterable_adaptor< internal::extended_storage_iterator< typename base_type::iterator > >
 Extended iterable storage proxy.
 
using const_iterable = iterable_adaptor< internal::extended_storage_iterator< typename base_type::const_iterator > >
 Constant extended iterable storage proxy.
 
using reverse_iterable = iterable_adaptor< internal::extended_storage_iterator< typename base_type::reverse_iterator > >
 Extended reverse iterable storage proxy.
 
using const_reverse_iterable = iterable_adaptor< internal::extended_storage_iterator< typename base_type::const_reverse_iterator > >
 Constant extended reverse iterable storage proxy.
 
- Public Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
using traits_type = entt_traits< Entity >
 Entity traits.
 
using entity_type = typename traits_type::value_type
 Underlying entity identifier.
 
using version_type = typename traits_type::version_type
 Underlying version type.
 
using size_type = std::size_t
 Unsigned integer type.
 
using allocator_type = std::allocator_traits< Allocator >::template rebind_alloc< Entity >
 Allocator type.
 
using pointer = typename packed_container_type::const_pointer
 Pointer type to contained entities.
 
using iterator = basic_iterator
 Random access iterator type.
 
using const_iterator = iterator
 Constant random access iterator type.
 
using reverse_iterator = std::reverse_iterator< iterator >
 Reverse iterator type.
 
using const_reverse_iterator = std::reverse_iterator< const_iterator >
 Constant reverse iterator type.
 

Public Member Functions

 basic_storage ()
 Default constructor.
 
 basic_storage (const allocator_type &allocator)
 Constructs an empty container with a given allocator.
 
 basic_storage (basic_storage &&other) noexcept=default
 Move constructor.
 
 basic_storage (basic_storage &&other, const allocator_type &allocator) noexcept
 Allocator-extended move constructor.
 
basic_storageoperator= (basic_storage &&other) noexcept=default
 Move assignment operator.
 
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
void get (const entity_type entt) const noexcept
 Returns the object assigned to an entity, that is void.
 
std::tuple get_as_tuple (const entity_type entt) const noexcept
 Returns an empty tuple.
 
template<typename... Args>
void emplace (const entity_type entt, Args &&...)
 Assigns an entity to a storage and constructs its object.
 
template<typename... Func>
void patch (const entity_type entt, Func &&...func)
 Updates the instance assigned to a given entity in-place.
 
template<typename It , typename... Args>
void insert (It first, It last, Args &&...)
 Assigns entities to a storage.
 
iterable each () noexcept
 Returns an iterable object to use to visit a storage.
 
const_iterable each () const noexcept
 Returns an iterable object to use to visit a storage.
 
reverse_iterable reach () noexcept
 Returns a reverse iterable object to use to visit a storage.
 
const_reverse_iterable reach () const noexcept
 Returns a reverse iterable object to use to visit a storage.
 
- Public Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
 basic_sparse_set ()
 Default constructor.
 
 basic_sparse_set (const allocator_type &allocator)
 Constructs an empty container with a given allocator.
 
 basic_sparse_set (deletion_policy pol, const allocator_type &allocator={})
 Constructs an empty container with the given policy and allocator.
 
 basic_sparse_set (const type_info &elem, deletion_policy pol=deletion_policy::swap_and_pop, const allocator_type &allocator={})
 Constructs an empty container with the given value type, policy and allocator.
 
 basic_sparse_set (basic_sparse_set &&other) noexcept
 Move constructor.
 
 basic_sparse_set (basic_sparse_set &&other, const allocator_type &allocator) noexcept
 Allocator-extended move constructor.
 
virtual ~basic_sparse_set ()
 Default destructor.
 
basic_sparse_setoperator= (basic_sparse_set &&other) noexcept
 Move assignment operator.
 
void swap (basic_sparse_set &other)
 Exchanges the contents with those of a given sparse set.
 
constexpr allocator_type get_allocator () const noexcept
 Returns the associated allocator.
 
deletion_policy policy () const noexcept
 Returns the deletion policy of a sparse set.
 
size_type free_list () const noexcept
 Returns the head of the free list, if any.
 
void free_list (const size_type len) noexcept
 Sets the head of the free list, if possible.
 
virtual void reserve (const size_type cap)
 Increases the capacity of a sparse set.
 
virtual size_type capacity () const noexcept
 Returns the number of elements that a sparse set has currently allocated space for.
 
virtual void shrink_to_fit ()
 Requests the removal of unused capacity.
 
size_type extent () const noexcept
 Returns the extent of a sparse set.
 
size_type size () const noexcept
 Returns the number of elements in a sparse set.
 
bool empty () const noexcept
 Checks whether a sparse set is empty.
 
bool contiguous () const noexcept
 Checks whether a sparse set is fully packed.
 
pointer data () const noexcept
 Direct access to the internal packed array.
 
iterator begin () const noexcept
 Returns an iterator to the beginning.
 
iterator begin (int) const noexcept
 Returns an iterator to the beginning. Useful only in case of swap-only policy.
 
const_iterator cbegin () const noexcept
 Returns an iterator to the beginning.
 
const_iterator cbegin (int) const noexcept
 Returns an iterator to the beginning. Useful only in case of swap-only policy.
 
iterator end () const noexcept
 Returns an iterator to the end.
 
iterator end (int) const noexcept
 Returns an iterator to the end. Useful only in case of swap-only policy.
 
const_iterator cend () const noexcept
 Returns an iterator to the end.
 
const_iterator cend (int) const noexcept
 Returns an iterator to the end. Useful only in case of swap-only policy.
 
reverse_iterator rbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
reverse_iterator rbegin (int) const noexcept
 Returns a reverse iterator to the beginning. Useful only in case of swap-only policy.
 
const_reverse_iterator crbegin () const noexcept
 Returns a reverse iterator to the beginning.
 
const_reverse_iterator crbegin (int) const noexcept
 Returns a reverse iterator to the beginning. Useful only in case of swap-only policy.
 
reverse_iterator rend () const noexcept
 Returns a reverse iterator to the end.
 
reverse_iterator rend (int) const noexcept
 Returns a reverse iterator to the beginning. Useful only in case of swap-only policy.
 
const_reverse_iterator crend () const noexcept
 Returns a reverse iterator to the end.
 
const_reverse_iterator crend (int) const noexcept
 Returns a reverse iterator to the beginning. Useful only in case of swap-only policy.
 
const_iterator find (const entity_type entt) const noexcept
 Finds an entity.
 
bool contains (const entity_type entt) const noexcept
 Checks if a sparse set contains an entity.
 
version_type current (const entity_type entt) const noexcept
 Returns the contained version for an identifier.
 
size_type index (const entity_type entt) const noexcept
 Returns the position of an entity in a sparse set.
 
entity_type at (const size_type pos) const noexcept
 Returns the entity at specified location, with bounds checking.
 
entity_type operator[] (const size_type pos) const noexcept
 Returns the entity at specified location, without bounds checking.
 
const void * value (const entity_type entt) const noexcept
 Returns the element assigned to an entity, if any.
 
void * value (const entity_type entt) noexcept
 Returns the element assigned to an entity, if any.
 
iterator push (const entity_type entt, const void *elem=nullptr)
 Assigns an entity to a sparse set.
 
iterator push (It first, It last)
 Assigns one or more entities to a sparse set.
 
version_type bump (const entity_type entt)
 Bump the version number of an entity.
 
void erase (const entity_type entt)
 Erases an entity from a sparse set.
 
void erase (It first, It last)
 Erases entities from a set.
 
bool remove (const entity_type entt)
 Removes an entity from a sparse set if it exists.
 
size_type remove (It first, It last)
 Removes entities from a sparse set if they exist.
 
void compact ()
 Removes all tombstones from a sparse set.
 
void swap_elements (const entity_type lhs, const entity_type rhs)
 Swaps two entities in a sparse set.
 
void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&...args)
 Sort the first count elements according to the given comparison function.
 
void sort (Compare compare, Sort algo=Sort{}, Args &&...args)
 Sort all elements according to the given comparison function.
 
void sort_as (It first, It last)
 Sort entities according to their order in a range.
 
void sort_as (const basic_sparse_set &other)
 Sort entities according to their order in a range.
 
void clear ()
 Clears a sparse set.
 
const type_infotype () const noexcept
 Returned value type, if any.
 
virtual void bind (any) noexcept
 Forwards variables to derived classes, if any.
 

Additional Inherited Members

- Protected Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
using basic_iterator = internal::sparse_set_iterator< packed_container_type >
 Random access iterator type.
 
- Protected Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
void swap_only (const basic_iterator it)
 Erases an entity from a sparse set.
 
void swap_and_pop (const basic_iterator it)
 Erases an entity from a sparse set.
 
void in_place_pop (const basic_iterator it)
 Erases an entity from a sparse set.
 
virtual void pop (basic_iterator first, basic_iterator last)
 Erases entities from a sparse set.
 
virtual void pop_all ()
 Erases all entities of a sparse set.
 
virtual basic_iterator try_emplace (const Entity entt, const bool force_back, const void *=nullptr)
 Assigns an entity to a sparse set.
 

Detailed Description

template<typename Type, typename Entity, typename Allocator>
class entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >

Default constructor.

Definition at line 772 of file storage.hpp.

Member Typedef Documentation

◆ allocator_type

template<typename Type , typename Entity , typename Allocator >
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::allocator_type = Allocator

Allocator type.

Definition at line 789 of file storage.hpp.

◆ base_type

template<typename Type , typename Entity , typename Allocator >
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::base_type = basic_sparse_set<Entity, typename alloc_traits::template rebind_alloc<Entity> >

Base type.

Definition at line 779 of file storage.hpp.

◆ const_iterable

template<typename Type , typename Entity , typename Allocator >
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::const_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_iterator> >

Constant extended iterable storage proxy.

Definition at line 793 of file storage.hpp.

◆ const_reverse_iterable

template<typename Type , typename Entity , typename Allocator >
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::const_reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_reverse_iterator> >

Constant extended reverse iterable storage proxy.

Definition at line 797 of file storage.hpp.

◆ entity_type

template<typename Type , typename Entity , typename Allocator >
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::entity_type = Entity

Underlying entity identifier.

Definition at line 785 of file storage.hpp.

◆ iterable

template<typename Type , typename Entity , typename Allocator >
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::iterator> >

Extended iterable storage proxy.

Definition at line 791 of file storage.hpp.

◆ reverse_iterable

template<typename Type , typename Entity , typename Allocator >
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::reverse_iterator> >

Extended reverse iterable storage proxy.

Definition at line 795 of file storage.hpp.

◆ size_type

template<typename Type , typename Entity , typename Allocator >
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::size_type = std::size_t

Unsigned integer type.

Definition at line 787 of file storage.hpp.

◆ traits_type

template<typename Type , typename Entity , typename Allocator >
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::traits_type = component_traits<value_type>

Component traits.

Definition at line 783 of file storage.hpp.

◆ value_type

template<typename Type , typename Entity , typename Allocator >
using entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::value_type = Type

Type of the objects assigned to entities.

Definition at line 781 of file storage.hpp.

Constructor & Destructor Documentation

◆ basic_storage() [1/4]

template<typename Type , typename Entity , typename Allocator >
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage ( )
inline

Default constructor.

Definition at line 800 of file storage.hpp.

◆ basic_storage() [2/4]

template<typename Type , typename Entity , typename Allocator >
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage ( const allocator_type allocator)
inlineexplicit

Constructs an empty container with a given allocator.

Parameters
allocatorThe allocator to use.

Definition at line 807 of file storage.hpp.

◆ basic_storage() [3/4]

template<typename Type , typename Entity , typename Allocator >
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage ( basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > > &&  other)
defaultnoexcept

Move constructor.

Parameters
otherThe instance to move from.

◆ basic_storage() [4/4]

template<typename Type , typename Entity , typename Allocator >
entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::basic_storage ( basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > > &&  other,
const allocator_type allocator 
)
inlinenoexcept

Allocator-extended move constructor.

Parameters
otherThe instance to move from.
allocatorThe allocator to use.

Definition at line 821 of file storage.hpp.

Member Function Documentation

◆ each() [1/2]

template<typename Type , typename Entity , typename Allocator >
const_iterable entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::each ( ) const
inlinenoexcept

Returns an iterable object to use to visit a storage.

The iterable object returns a tuple that contains the current entity.

Returns
An iterable object to use to visit the storage.

Definition at line 925 of file storage.hpp.

◆ each() [2/2]

template<typename Type , typename Entity , typename Allocator >
iterable entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::each ( )
inlinenoexcept

Returns an iterable object to use to visit a storage.

The iterable object returns a tuple that contains the current entity.

Returns
An iterable object to use to visit the storage.

Definition at line 920 of file storage.hpp.

◆ emplace()

template<typename Type , typename Entity , typename Allocator >
template<typename... Args>
void entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::emplace ( const entity_type  entt,
Args &&  ... 
)
inline

Assigns an entity to a storage and constructs its object.

Warning
Attempting to use an entity that already belongs to the storage results in undefined behavior.
Template Parameters
ArgsTypes of arguments to use to construct the object.
Parameters
enttA valid identifier.

Definition at line 883 of file storage.hpp.

◆ get()

template<typename Type , typename Entity , typename Allocator >
void entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::get ( const entity_type  entt) const
inlinenoexcept

Returns the object assigned to an entity, that is void.

Warning
Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
Parameters
enttA valid identifier.

Definition at line 853 of file storage.hpp.

◆ get_allocator()

template<typename Type , typename Entity , typename Allocator >
constexpr allocator_type entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::get_allocator ( ) const
inlineconstexprnoexcept

Returns the associated allocator.

Returns
The associated allocator.

Definition at line 835 of file storage.hpp.

◆ get_as_tuple()

template<typename Type , typename Entity , typename Allocator >
std::tuple entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::get_as_tuple ( const entity_type  entt) const
inlinenoexcept

Returns an empty tuple.

Warning
Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
Parameters
enttA valid identifier.
Returns
Returns an empty tuple.

Definition at line 867 of file storage.hpp.

◆ insert()

template<typename Type , typename Entity , typename Allocator >
template<typename It , typename... Args>
void entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::insert ( It  first,
It  last,
Args &&  ... 
)
inline

Assigns entities to a storage.

Template Parameters
ItType of input iterator.
ArgsTypes of optional arguments.
Parameters
firstAn iterator to the first element of the range of entities.
lastAn iterator past the last element of the range of entities.

Definition at line 907 of file storage.hpp.

◆ operator=()

template<typename Type , typename Entity , typename Allocator >
basic_storage & entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::operator= ( basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > > &&  other)
defaultnoexcept

Move assignment operator.

Parameters
otherThe instance to move from.
Returns
This storage.

◆ patch()

template<typename Type , typename Entity , typename Allocator >
template<typename... Func>
void entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::patch ( const entity_type  entt,
Func &&...  func 
)
inline

Updates the instance assigned to a given entity in-place.

Template Parameters
FuncTypes of the function objects to invoke.
Parameters
enttA valid identifier.
funcValid function objects.

Definition at line 894 of file storage.hpp.

◆ reach() [1/2]

template<typename Type , typename Entity , typename Allocator >
const_reverse_iterable entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::reach ( ) const
inlinenoexcept

Returns a reverse iterable object to use to visit a storage.

See also
each
Returns
A reverse iterable object to use to visit the storage.

Definition at line 941 of file storage.hpp.

◆ reach() [2/2]

template<typename Type , typename Entity , typename Allocator >
reverse_iterable entt::basic_storage< Type, Entity, Allocator, std::enable_if_t< component_traits< Type >::page_size==0u > >::reach ( )
inlinenoexcept

Returns a reverse iterable object to use to visit a storage.

See also
each
Returns
A reverse iterable object to use to visit the storage.

Definition at line 936 of file storage.hpp.


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