EnTT: entt::basic_handle< Registry, Scope > Class Template Reference

EnTT 3.16.0

Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
entt::basic_handle< Registry, Scope > Class Template Reference

Non-owning handle to an entity. More...

`#include <handle.hpp>`

## Public Types
using | registry_type = Registry
| Type of registry accepted by the handle.
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 | iterable = iterable_adaptor<internal::handle_storage_iterator<typename decltype(std::declval<registry_type>().storage())::iterator>>
| Iterable handle type.

## Public Member Functions
| basic_handle () noexcept
| Constructs an invalid handle.
| basic_handle (registry_type &ref, entity_type value) noexcept
| Constructs a handle from a given registry and entity.
iterable | storage () const noexcept
| Returns an iterable object to use to visit a handle.
| operator bool () const noexcept
| Checks if a handle refers to a valid registry and entity.
bool | valid () const
| Checks if a handle refers to a valid registry and entity.
registry_type * | registry () const noexcept
| Returns a pointer to the underlying registry, if any.
entity_type | entity () const noexcept
| Returns the entity associated with a handle.
| operator entity_type () const noexcept
| Returns the entity associated with a handle.
void | destroy ()
| Destroys the entity associated with a handle.
void | destroy (const version_type version)
| Destroys the entity associated with a handle.
template<typename Type, typename... Args>
decltype(auto) | emplace (Args &&...args) const
| Assigns the given element to a handle.
template<typename Type, typename... Args>
decltype(auto) | emplace_or_replace (Args &&...args) const
| Assigns or replaces the given element for a handle.
template<typename Type, typename... Func>
decltype(auto) | patch (Func &&...func) const
| Patches the given element for a handle.
template<typename Type, typename... Args>
decltype(auto) | replace (Args &&...args) const
| Replaces the given element for a handle.
template<typename... Type>
size_type | remove () const
| Removes the given elements from a handle.
template<typename... Type>
void | erase () const
| Erases the given elements from a handle.
template<typename... Type>
decltype(auto) | all_of () const
| Checks if a handle has all the given elements.
template<typename... Type>
decltype(auto) | any_of () const
| Checks if a handle has at least one of the given elements.
template<typename... Type>
decltype(auto) | get () const
| Returns references to the given elements for a handle.
template<typename Type, typename... Args>
decltype(auto) | get_or_emplace (Args &&...args) const
| Returns a reference to the given element for a handle.
template<typename... Type>
auto | try_get () const
| Returns pointers to the given elements for a handle.
bool | orphan () const
| Checks if a handle has elements assigned.
template<typename Other, typename... Args>
| operator basic_handle< Other, Args... > () const noexcept
| Returns a const handle from a non-const one.

## Detailed Description

template<typename Registry, typename... Scope>
class entt::basic_handle< Registry, Scope >

Non-owning handle to an entity.

Tiny wrapper around a registry and an entity.

Template Parameters

  Registry | Basic registry type.
  Scope | Types to which to restrict the scope of a handle.

Definition at line 98 of file handle.hpp.

## Member Typedef Documentation

## ◆ entity_type

template<typename Registry, typename... Scope>

using entt::basic_handle< Registry, Scope >::entity_type = typename traits_type::value_type

Underlying entity identifier.

Definition at line 110 of file handle.hpp.

## ◆ iterable

template<typename Registry, typename... Scope>

using entt::basic_handle< Registry, Scope >::iterable = iterable_adaptor<internal::handle_storage_iterator<typename decltype(std::declval<registry_type>().storage())::iterator>>

Iterable handle type.

Definition at line 116 of file handle.hpp.

## ◆ registry_type

template<typename Registry, typename... Scope>

using entt::basic_handle< Registry, Scope >::registry_type = Registry

Type of registry accepted by the handle.

Definition at line 108 of file handle.hpp.

## ◆ size_type

template<typename Registry, typename... Scope>

using entt::basic_handle< Registry, Scope >::size_type = std::size_t

Unsigned integer type.

Definition at line 114 of file handle.hpp.

## ◆ version_type

template<typename Registry, typename... Scope>

using entt::basic_handle< Registry, Scope >::version_type = typename traits_type::version_type

Underlying version type.

Definition at line 112 of file handle.hpp.

## Constructor & Destructor Documentation

## ◆ basic_handle() [1/2]

template<typename Registry, typename... Scope>

entt::basic_handle< Registry, Scope >::basic_handle | ( |  | ) |
| inlinenoexcept

Constructs an invalid handle.

Definition at line 119 of file handle.hpp.

## ◆ basic_handle() [2/2]

template<typename Registry, typename... Scope>

entt::basic_handle< Registry, Scope >::basic_handle | ( | registry_type & | ref,
|  | entity_type | value )
| inlinenoexcept

Constructs a handle from a given registry and entity.

Parameters

  ref | An instance of the registry class.
  value | A valid identifier.

Definition at line 128 of file handle.hpp.

## Member Function Documentation

## ◆ all_of()

template<typename Registry, typename... Scope>
template<typename... Type>

decltype(auto) entt::basic_handle< Registry, Scope >::all_of | ( |  | ) | const
| inlinenodiscard

Checks if a handle has all the given elements.

Template Parameters

  Type | Elements for which to perform the check.

Returns
  True if the handle has all the elements, false otherwise.

Definition at line 276 of file handle.hpp.

## ◆ any_of()

template<typename Registry, typename... Scope>
template<typename... Type>

decltype(auto) entt::basic_handle< Registry, Scope >::any_of | ( |  | ) | const
| inlinenodiscard

Checks if a handle has at least one of the given elements.

Template Parameters

  Type | Elements for which to perform the check.

Returns
  True if the handle has at least one of the given elements, false otherwise.

Definition at line 287 of file handle.hpp.

## ◆ destroy() [1/2]

template<typename Registry, typename... Scope>

void entt::basic_handle< Registry, Scope >::destroy | ( |  | ) |
| inline

Destroys the entity associated with a handle.

Definition at line 183 of file handle.hpp.

## ◆ destroy() [2/2]

template<typename Registry, typename... Scope>

void entt::basic_handle< Registry, Scope >::destroy | ( | const version_type | version | ) |
| inline

Destroys the entity associated with a handle.

Parameters

  version | A desired version upon destruction.

Definition at line 191 of file handle.hpp.

## ◆ emplace()

template<typename Registry, typename... Scope>
template<typename Type, typename... Args>

decltype(auto) entt::basic_handle< Registry, Scope >::emplace | ( | Args &&... | args | ) | const
| inline

Assigns the given element to a handle.

Template Parameters

  Type | Type of element to create.
  Args | Types of arguments to use to construct the element.

Parameters

  args | Parameters to use to initialize the element.

Returns
  A reference to the newly created element.

Definition at line 204 of file handle.hpp.

## ◆ emplace_or_replace()

template<typename Registry, typename... Scope>
template<typename Type, typename... Args>

decltype(auto) entt::basic_handle< Registry, Scope >::emplace_or_replace | ( | Args &&... | args | ) | const
| inline

Assigns or replaces the given element for a handle.

Template Parameters

  Type | Type of element to assign or replace.
  Args | Types of arguments to use to construct the element.

Parameters

  args | Parameters to use to initialize the element.

Returns
  A reference to the newly created element.

Definition at line 217 of file handle.hpp.

## ◆ entity()

template<typename Registry, typename... Scope>

entity_type entt::basic_handle< Registry, Scope >::entity | ( |  | ) | const
| inlinenodiscardnoexcept

Returns the entity associated with a handle.

Returns
  The entity associated with the handle.

Definition at line 173 of file handle.hpp.

## ◆ erase()

template<typename Registry, typename... Scope>
template<typename... Type>

void entt::basic_handle< Registry, Scope >::erase | ( |  | ) | const
| inline

Erases the given elements from a handle.

Template Parameters

  Type | Types of elements to erase.

Definition at line 265 of file handle.hpp.

## ◆ get()

template<typename Registry, typename... Scope>
template<typename... Type>

decltype(auto) entt::basic_handle< Registry, Scope >::get | ( |  | ) | const
| inlinenodiscard

Returns references to the given elements for a handle.

Template Parameters

  Type | Types of elements to get.

Returns
  References to the elements owned by the handle.

Definition at line 297 of file handle.hpp.

## ◆ get_or_emplace()

template<typename Registry, typename... Scope>
template<typename Type, typename... Args>

decltype(auto) entt::basic_handle< Registry, Scope >::get_or_emplace | ( | Args &&... | args | ) | const
| inlinenodiscard

Returns a reference to the given element for a handle.

Template Parameters

  Type | Type of element to get.
  Args | Types of arguments to use to construct the element.

Parameters

  args | Parameters to use to initialize the element.

Returns
  Reference to the element owned by the handle.

Definition at line 310 of file handle.hpp.

## ◆ operator basic_handle< Other, Args... >()

template<typename Registry, typename... Scope>
template<typename Other, typename... Args>

entt::basic_handle< Registry, Scope >::operator basic_handle< Other, Args... > | ( |  | ) | const
| inlinenoexcept

Returns a const handle from a non-const one.

Template Parameters

  Other | A valid entity type.
  Args | Scope of the handle to construct.

Returns
  A const handle referring to the same registry and the same entity.

Definition at line 342 of file handle.hpp.

## ◆ operator bool()

template<typename Registry, typename... Scope>

entt::basic_handle< Registry, Scope >::operator bool | ( |  | ) | const
| inlineexplicitnodiscardnoexcept

Checks if a handle refers to a valid registry and entity.

Returns
  True if the handle refers to a valid registry and entity, false otherwise.

Definition at line 148 of file handle.hpp.

## ◆ operator entity_type()

template<typename Registry, typename... Scope>

entt::basic_handle< Registry, Scope >::operator entity_type | ( |  | ) | const
| inlinenodiscardnoexcept

Returns the entity associated with a handle.

Returns
  The entity associated with the handle.

Definition at line 178 of file handle.hpp.

## ◆ orphan()

template<typename Registry, typename... Scope>

bool entt::basic_handle< Registry, Scope >::orphan | ( |  | ) | const
| inlinenodiscard

Checks if a handle has elements assigned.

Returns
  True if the handle has no elements assigned, false otherwise.

Definition at line 330 of file handle.hpp.

## ◆ patch()

template<typename Registry, typename... Scope>
template<typename Type, typename... Func>

decltype(auto) entt::basic_handle< Registry, Scope >::patch | ( | Func &&... | func | ) | const
| inline

Patches the given element for a handle.

Template Parameters

  Type | Type of element to patch.
  Func | Types of the function objects to invoke.

Parameters

  func | Valid function objects.

Returns
  A reference to the patched element.

Definition at line 230 of file handle.hpp.

## ◆ registry()

template<typename Registry, typename... Scope>

registry_type * entt::basic_handle< Registry, Scope >::registry | ( |  | ) | const
| inlinenodiscardnoexcept

Returns a pointer to the underlying registry, if any.

Returns
  A pointer to the underlying registry, if any.

Definition at line 165 of file handle.hpp.

## ◆ remove()

template<typename Registry, typename... Scope>
template<typename... Type>

size_type entt::basic_handle< Registry, Scope >::remove | ( |  | ) | const
| inline

Removes the given elements from a handle.

Template Parameters

  Type | Types of elements to remove.

Returns
  The number of elements actually removed.

Definition at line 255 of file handle.hpp.

## ◆ replace()

template<typename Registry, typename... Scope>
template<typename Type, typename... Args>

decltype(auto) entt::basic_handle< Registry, Scope >::replace | ( | Args &&... | args | ) | const
| inline

Replaces the given element for a handle.

Template Parameters

  Type | Type of element to replace.
  Args | Types of arguments to use to construct the element.

Parameters

  args | Parameters to use to initialize the element.

Returns
  A reference to the element being replaced.

Definition at line 243 of file handle.hpp.

## ◆ storage()

template<typename Registry, typename... Scope>

iterable entt::basic_handle< Registry, Scope >::storage | ( |  | ) | const
| inlinenodiscardnoexcept

Returns an iterable object to use to visit a handle.

The iterable object returns a pair that contains the name and a reference to the current storage.
Returned storage are those that contain the entity associated with the handle.

Returns
  An iterable object to use to visit the handle.

Definition at line 142 of file handle.hpp.

## ◆ try_get()

template<typename Registry, typename... Scope>
template<typename... Type>

auto entt::basic_handle< Registry, Scope >::try_get | ( |  | ) | const
| inlinenodiscard

Returns pointers to the given elements for a handle.

Template Parameters

  Type | Types of elements to get.

Returns
  Pointers to the elements owned by the handle.

Definition at line 321 of file handle.hpp.

## ◆ valid()

template<typename Registry, typename... Scope>

bool entt::basic_handle< Registry, Scope >::valid | ( |  | ) | const
| inlinenodiscard

Checks if a handle refers to a valid registry and entity.

Returns
  True if the handle refers to a valid registry and entity, false otherwise.

Definition at line 157 of file handle.hpp.

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

- src/entt/entity/fwd.hpp
- src/entt/entity/handle.hpp