1#ifndef ENTT_ENTITY_FWD_HPP
2#define ENTT_ENTITY_FWD_HPP
7#include "../config/config.h"
8#include "../core/fwd.hpp"
9#include "../core/type_traits.hpp"
28template<
typename Type,
typename Entity = entity,
typename =
void>
29struct component_traits;
31template<
typename Entity = entity,
typename = std::allocator<Entity>>
32class basic_sparse_set;
34template<
typename Type,
typename = entity,
typename = std::allocator<Type>,
typename =
void>
37template<
typename,
typename>
38class basic_sigh_mixin;
40template<
typename,
typename>
41class basic_reactive_mixin;
43template<
typename Entity = entity,
typename = std::allocator<Entity>>
46template<
typename,
typename,
typename =
void>
49template<
typename Type,
typename = std::allocator<Type *>>
52template<
typename,
typename,
typename>
58template<
typename,
typename...>
77template<
typename Type>
84template<
typename Type>
91template<
typename Type>
110template<
typename... Args>
117template<
typename... Args>
139template<
typename... Type>
149template<
typename... Type>
156template<
typename... Type>
159 explicit constexpr get_t() =
default;
166template<
typename... Type>
173template<
typename... Type>
183template<
typename... Type>
191template<
typename... Type,
template<
typename...>
class Op>
202template<
typename... Type,
template<
typename...>
class Op>
213template<
typename... Type,
template<
typename...>
class Op>
225template<
typename Type,
typename Entity = entity,
typename Allocator = std::allocator<Type>,
typename =
void>
239template<
typename Entity,
typename Allocator>
249template<
typename... Args>
258template<
typename Type,
typename Entity = entity,
typename Allocator = std::allocator<std::remove_const_t<Type>>>
268template<
typename... Args>
276template<
typename Get,
typename Exclude = exclude_t<>>
285template<
typename Owned,
typename Get = get_t<>,
typename Exclude = exclude_t<>>
Utility class for continuous loading.
Non-owning handle to an entity.
Utility class for creating a static task graph.
Mixin type used to add reactive support to storage types.
Mixin type used to add signal support to storage types.
Utility class to restore a snapshot as a whole.
Utility class to create snapshots from a registry.
basic_handle< const registry, Args... > const_handle_view
Alias declaration for the most common use case.
entity
Default entity identifier.
typename storage_type< Args... >::type storage_type_t
Helper type.
typename constness_as< To, From >::type constness_as_t
Alias template to facilitate the transcription of the constness.
basic_organizer< registry > organizer
Alias declaration for the most common use case.
typename type_list_transform< List, Op >::type type_list_transform_t
Helper type.
basic_view< type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > > view
Alias declaration for the most common use case.
basic_handle< registry > handle
Alias declaration for the most common use case.
constexpr exclude_t< Type... > exclude
Variable template for exclusion lists.
std::uint32_t id_type
Alias declaration for type identifiers.
basic_handle< registry, Args... > handle_view
Alias declaration for the most common use case.
basic_reactive_mixin< Type, basic_registry< typename Type::entity_type, typename Type::base_type::allocator_type > > reactive_mixin
Alias declaration for the most common use case.
basic_group< type_list_transform_t< Owned, storage_for >, type_list_transform_t< Get, storage_for >, type_list_transform_t< Exclude, storage_for > > group
Alias declaration for the most common use case.
constexpr get_t< Type... > get
Variable template for lists of observed elements.
typename storage_for< Args... >::type storage_for_t
Helper type.
basic_registry<> registry
Alias declaration for the most common use case.
deletion_policy
Storage deletion policy.
@ swap_only
Swap-only deletion policy.
@ swap_and_pop
Swap-and-pop deletion policy.
@ in_place
In-place deletion policy.
@ unspecified
Unspecified deletion policy.
basic_runtime_view< const sparse_set > const_runtime_view
Alias declaration for the most common use case.
constexpr owned_t< Type... > owned
Variable template for lists of owned elements.
basic_sigh_mixin< Type, basic_registry< typename Type::entity_type, typename Type::base_type::allocator_type > > sigh_mixin
Alias declaration for the most common use case.
basic_runtime_view< sparse_set > runtime_view
Alias declaration for the most common use case.
basic_snapshot< registry > snapshot
Alias declaration for the most common use case.
basic_continuous_loader< registry > continuous_loader
Alias declaration for the most common use case.
basic_handle< const registry > const_handle
Alias declaration for the most common use case.
basic_sparse_set<> sparse_set
Alias declaration for the most common use case.
basic_storage< Type > storage
Alias declaration for the most common use case.
basic_snapshot_loader< registry > snapshot_loader
Alias declaration for the most common use case.
Alias for exclusion lists.
constexpr exclude_t()=default
Default constructor.
Alias for lists of observed elements.
constexpr get_t()=default
Default constructor.
Alias for lists of owned elements.
constexpr owned_t()=default
Default constructor.
Empty value type for reactive storage types.
constness_as_t< storage_type_t< std::remove_const_t< Type >, Entity, Allocator >, Type > type
Type-to-storage conversion result.
reactive_mixin< basic_storage< reactive, Entity, Allocator > > type
Type-to-storage conversion result.
Provides a common way to define storage types.
sigh_mixin< basic_storage< Type, Entity, Allocator > > type
Type-to-storage conversion result.
A class to use to push around lists of types, nothing more.