2#ifndef LIBSBX_ECS_COMPONENT_HPP_
3#define LIBSBX_ECS_COMPONENT_HPP_
11template<
typename Type,
typename =
void>
12struct in_place_delete: std::bool_constant<!(std::is_move_constructible_v<Type> && std::is_move_assignable_v<Type>)> { };
17template<
typename Type>
18struct in_place_delete<Type, std::enable_if_t<Type::in_place_delete>> : std::true_type { };
20template<
typename Type,
typename =
void>
21struct page_size: std::integral_constant<std::size_t, !std::is_empty_v<Type> * 1024u> { };
24struct page_size<void>: std::integral_constant<std::size_t, 0u> { };
26template<
typename Type>
27struct page_size<Type, std::void_t<decltype(Type::page_size)>> : std::integral_constant<std::size_t, Type::page_size> { };
31template<
typename Type,
typename Entity>
32requires (std::is_same_v<std::decay_t<Type>, Type>)
35 using element_type = Type;
36 using entity_type = Entity;
Definition: component.hpp:33
Definition: component.hpp:12
Definition: component.hpp:21