1 #ifndef ENTT_ENTITY_COMPONENT_HPP
2 #define ENTT_ENTITY_COMPONENT_HPP
6 #include "../config/config.h"
17 template<
typename,
typename =
void>
18 struct in_place_delete: std::false_type {};
20 template<
typename Type>
21 struct in_place_delete<Type, std::enable_if_t<Type::in_place_delete>>
24 template<
typename Type,
typename =
void>
25 struct page_size: std::integral_constant<std::size_t, (ENTT_IGNORE_IF_EMPTY && std::is_empty_v<Type>) ? 0u : ENTT_PACKED_PAGE> {};
27 template<
typename Type>
28 struct page_size<Type, std::enable_if_t<std::is_convertible_v<decltype(Type::page_size), std::size_t>>>
29 : std::integral_constant<std::size_t, Type::page_size> {};
42 template<
typename Type,
typename =
void>
44 static_assert(std::is_same_v<std::decay_t<Type>, Type>,
"Unsupported type");
49 static constexpr std::size_t
page_size = internal::page_size<Type>::value;
constexpr bool ignore_as_empty_v
Helper variable template.
Common way to access various properties of components.
static constexpr std::size_t page_size
Page size, default is ENTT_PACKED_PAGE for non-empty types.
static constexpr bool in_place_delete
Pointer stability, default is false.