- #ifndef ENTT_ENTITY_FWD_HPP
- #define ENTT_ENTITY_FWD_HPP
-
- #include <memory>
- #include "../core/fwd.hpp"
- #include "utility.hpp"
-
- namespace entt {
-
- template<typename Entity, typename = std::allocator<Entity>>
- class basic_sparse_set;
-
- template<typename, typename Type, typename = std::allocator<Type>, typename = void>
- class basic_storage;
-
- template<typename>
- class basic_registry;
-
- template<typename, typename, typename, typename = void>
- class basic_view;
-
- template<typename>
- struct basic_runtime_view;
-
- template<typename, typename, typename, typename>
- class basic_group;
-
- template<typename>
- class basic_observer;
-
- template<typename>
- class basic_organizer;
-
- template<typename, typename...>
- struct basic_handle;
-
- template<typename>
- class basic_snapshot;
-
- template<typename>
- class basic_snapshot_loader;
-
- template<typename>
- class basic_continuous_loader;
-
- /*! @brief Default entity identifier. */
- enum class entity : id_type {};
-
- /*! @brief Alias declaration for the most common use case. */
- using sparse_set = basic_sparse_set<entity>;
-
- /**
- * @brief Alias declaration for the most common use case.
- * @tparam Args Other template parameters.
- */
- template<typename... Args>
- using storage = basic_storage<entity, Args...>;
-
- /*! @brief Alias declaration for the most common use case. */
- using registry = basic_registry<entity>;
-
- /*! @brief Alias declaration for the most common use case. */
- using observer = basic_observer<entity>;
-
- /*! @brief Alias declaration for the most common use case. */
- using organizer = basic_organizer<entity>;
-
- /*! @brief Alias declaration for the most common use case. */
- using handle = basic_handle<entity>;
-
- /*! @brief Alias declaration for the most common use case. */
- using const_handle = basic_handle<const entity>;
-
- /**
- * @brief Alias declaration for the most common use case.
- * @tparam Args Other template parameters.
- */
- template<typename... Args>
- using handle_view = basic_handle<entity, Args...>;
-
- /**
- * @brief Alias declaration for the most common use case.
- * @tparam Args Other template parameters.
- */
- template<typename... Args>
- using const_handle_view = basic_handle<const entity, Args...>;
-
- /*! @brief Alias declaration for the most common use case. */
- using snapshot = basic_snapshot<entity>;
-
- /*! @brief Alias declaration for the most common use case. */
- using snapshot_loader = basic_snapshot_loader<entity>;
-
- /*! @brief Alias declaration for the most common use case. */
- using continuous_loader = basic_continuous_loader<entity>;
-
- /**
- * @brief Alias declaration for the most common use case.
- * @tparam Get Types of components iterated by the view.
- * @tparam Exclude Types of components used to filter the view.
- */
- template<typename Get, typename Exclude = exclude_t<>>
- using view = basic_view<entity, Get, Exclude>;
-
- /*! @brief Alias declaration for the most common use case. */
- using runtime_view = basic_runtime_view<sparse_set>;
-
- /**
- * @brief Alias declaration for the most common use case.
- * @tparam Args Other template parameters.
- */
- template<typename... Args>
- using group = basic_group<entity, Args...>;
-
- } // namespace entt
-
- #endif
|