Flecs v4.0
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
lifecycle_traits.hpp File Reference

Utilities for discovering and registering component lifecycle hooks. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  flecs::is_flecs_constructible< T >
struct  flecs::_::has_operator_less< T, typename >
struct  flecs::_::has_operator_less< T, void_t< decltype(std::declval< const T & >()< std::declval< const T & >())> >
struct  flecs::_::has_operator_greater< T, typename >
struct  flecs::_::has_operator_greater< T, void_t< decltype(std::declval< const T & >() > std::declval< const T & >())> >
struct  flecs::_::has_operator_equal< T, typename >
struct  flecs::_::has_operator_equal< T, void_t< decltype(std::declval< const T & >()==std::declval< const T & >())> >

Namespaces

namespace  flecs::_
 Int to enum.

Typedefs

template<typename...>
using flecs::_::void_t = void

Functions

template<typename T>
void flecs::_::ctor_impl (void *ptr, int32_t count, const ecs_type_info_t *info)
template<typename T>
void flecs::_::dtor_impl (void *ptr, int32_t count, const ecs_type_info_t *info)
template<typename T>
void flecs::_::copy_impl (void *dst_ptr, const void *src_ptr, int32_t count, const ecs_type_info_t *info)
template<typename T>
void flecs::_::move_impl (void *dst_ptr, void *src_ptr, int32_t count, const ecs_type_info_t *info)
template<typename T>
void flecs::_::copy_ctor_impl (void *dst_ptr, const void *src_ptr, int32_t count, const ecs_type_info_t *info)
template<typename T>
void flecs::_::move_ctor_impl (void *dst_ptr, void *src_ptr, int32_t count, const ecs_type_info_t *info)
template<typename T>
void flecs::_::ctor_move_dtor_impl (void *dst_ptr, void *src_ptr, int32_t count, const ecs_type_info_t *info)
template<typename T, if_not_t< std::is_trivially_move_assignable< T >::value > = 0>
void flecs::_::move_dtor_impl (void *dst_ptr, void *src_ptr, int32_t count, const ecs_type_info_t *info)
template<typename T, if_t< std::is_trivially_move_assignable< T >::value > = 0>
void flecs::_::move_dtor_impl (void *dst_ptr, void *src_ptr, int32_t count, const ecs_type_info_t *info)
template<typename T, if_t< std::is_trivially_constructible< T >::value > = 0>
ecs_xtor_t flecs::_::ctor (ecs_flags32_t &)
template<typename T, if_t< ! std::is_default_constructible< T >::value > = 0>
ecs_xtor_t flecs::_::ctor (ecs_flags32_t &flags)
template<typename T, if_t< ! std::is_trivially_constructible< T >::value &&std::is_default_constructible< T >::value > = 0>
ecs_xtor_t flecs::_::ctor (ecs_flags32_t &)
template<typename T, if_t< std::is_trivially_destructible< T >::value > = 0>
ecs_xtor_t flecs::_::dtor (ecs_flags32_t &)
template<typename T, if_t< std::is_destructible< T >::value &&! std::is_trivially_destructible< T >::value > = 0>
ecs_xtor_t flecs::_::dtor (ecs_flags32_t &)
template<typename T, if_not_t< std::is_destructible< T >::value > = 0>
ecs_xtor_t flecs::_::dtor (ecs_flags32_t &flags)
template<typename T, if_t< std::is_trivially_copyable< T >::value > = 0>
ecs_copy_t flecs::_::copy (ecs_flags32_t &)
template<typename T, if_t< ! std::is_trivially_copyable< T >::value &&! std::is_copy_assignable< T >::value > = 0>
ecs_copy_t flecs::_::copy (ecs_flags32_t &flags)
template<typename T, if_t< std::is_copy_assignable< T >::value &&! std::is_trivially_copyable< T >::value > = 0>
ecs_copy_t flecs::_::copy (ecs_flags32_t &)
template<typename T, if_t< std::is_trivially_move_assignable< T >::value > = 0>
ecs_move_t flecs::_::move (ecs_flags32_t &)
template<typename T, if_not_t< std::is_move_assignable< T >::value > = 0>
ecs_move_t flecs::_::move (ecs_flags32_t &flags)
template<typename T, if_t< std::is_move_assignable< T >::value &&! std::is_trivially_move_assignable< T >::value > = 0>
ecs_move_t flecs::_::move (ecs_flags32_t &)
template<typename T, if_t< std::is_trivially_copy_constructible< T >::value > = 0>
ecs_copy_t flecs::_::copy_ctor (ecs_flags32_t &)
template<typename T, if_t< ! std::is_copy_constructible< T >::value > = 0>
ecs_copy_t flecs::_::copy_ctor (ecs_flags32_t &flags)
template<typename T, if_t< std::is_copy_constructible< T >::value &&! std::is_trivially_copy_constructible< T >::value > = 0>
ecs_copy_t flecs::_::copy_ctor (ecs_flags32_t &)
template<typename T, if_t< std::is_trivially_move_constructible< T >::value > = 0>
ecs_move_t flecs::_::move_ctor (ecs_flags32_t &)
template<typename T, if_not_t< std::is_move_constructible< T >::value > = 0>
ecs_move_t flecs::_::move_ctor (ecs_flags32_t &flags)
template<typename T, if_t< std::is_move_constructible< T >::value &&! std::is_trivially_move_constructible< T >::value > = 0>
ecs_move_t flecs::_::move_ctor (ecs_flags32_t &)
template<typename T, if_t< std::is_trivially_move_constructible< T >::value &&std::is_trivially_destructible< T >::value > = 0>
ecs_move_t flecs::_::ctor_move_dtor (ecs_flags32_t &)
template<typename T, if_t< ! std::is_move_constructible< T >::value||! std::is_destructible< T >::value > = 0>
ecs_move_t flecs::_::ctor_move_dtor (ecs_flags32_t &flags)
template<typename T, if_t< !(std::is_trivially_move_constructible< T >::value &&std::is_trivially_destructible< T >::value) &&std::is_move_constructible< T >::value &&std::is_destructible< T >::value > = 0>
ecs_move_t flecs::_::ctor_move_dtor (ecs_flags32_t &)
template<typename T, if_t< std::is_trivially_move_assignable< T >::value &&std::is_trivially_destructible< T >::value > = 0>
ecs_move_t flecs::_::move_dtor (ecs_flags32_t &)
template<typename T, if_t< ! std::is_move_assignable< T >::value||! std::is_destructible< T >::value > = 0>
ecs_move_t flecs::_::move_dtor (ecs_flags32_t &flags)
template<typename T, if_t< !(std::is_trivially_move_assignable< T >::value &&std::is_trivially_destructible< T >::value) &&std::is_move_assignable< T >::value &&std::is_destructible< T >::value > = 0>
ecs_move_t flecs::_::move_dtor (ecs_flags32_t &)
template<typename T, if_t< has_operator_less< T >::value &&has_operator_greater< T >::value &&!has_operator_equal< T >::value > = 0>
int flecs::_::compare_impl (const void *a, const void *b, const ecs_type_info_t *)
template<typename T, if_t< has_operator_less< T >::value &&has_operator_equal< T >::value > = 0>
int flecs::_::compare_impl (const void *a, const void *b, const ecs_type_info_t *)
template<typename T, if_t< has_operator_greater< T >::value &&has_operator_equal< T >::value &&!has_operator_less< T >::value > = 0>
int flecs::_::compare_impl (const void *a, const void *b, const ecs_type_info_t *)
template<typename T, if_t< has_operator_less< T >::value &&!has_operator_greater< T >::value &&!has_operator_equal< T >::value > = 0>
int flecs::_::compare_impl (const void *a, const void *b, const ecs_type_info_t *)
template<typename T, if_t< has_operator_greater< T >::value &&!has_operator_less< T >::value &&!has_operator_equal< T >::value > = 0>
int flecs::_::compare_impl (const void *a, const void *b, const ecs_type_info_t *)
template<typename T, if_t< has_operator_less< T >::value||has_operator_greater< T >::value > = 0>
ecs_cmp_t flecs::_::compare ()
template<typename T, if_t< !has_operator_less< T >::value &&!has_operator_greater< T >::value > = 0>
ecs_cmp_t flecs::_::compare ()
template<typename T, if_t< has_operator_equal< T >::value > = 0>
bool flecs::_::equals_impl (const void *a, const void *b, const ecs_type_info_t *)
template<typename T, if_t< has_operator_equal< T >::value > = 0>
ecs_equals_t flecs::_::equals ()
template<typename T, if_t< !has_operator_equal< T >::value > = 0>
ecs_equals_t flecs::_::equals ()

Detailed Description

Utilities for discovering and registering component lifecycle hooks.

Definition in file lifecycle_traits.hpp.