Flecs v4.0
A fast entity component system (ECS) for C & C++
|
Flecs STL (FTL?) More...
#include <stdlib.h>
#include "array.hpp"
#include "string.hpp"
#include "enum.hpp"
#include "stringstream.hpp"
#include "function_traits.hpp"
Go to the source code of this file.
Classes | |
struct | flecs::_::placement_new_tag_t |
struct | flecs::_::always_false< T > |
Namespaces | |
namespace | flecs::_ |
Int to enum. | |
Macros | |
#define | FLECS_PLACEMENT_NEW(_ptr, _type) ::new(flecs::_::placement_new_tag, _ptr) _type |
#define | FLECS_NEW(_type) FLECS_PLACEMENT_NEW(ecs_os_malloc(sizeof(_type)), _type) |
#define | FLECS_DELETE(_ptr) |
#define | FLECS_MOV(...) static_cast<flecs::remove_reference_t<decltype(__VA_ARGS__)>&&>(__VA_ARGS__) |
#define | FLECS_FWD(...) static_cast<decltype(__VA_ARGS__)&&>(__VA_ARGS__) |
#define | flecs_static_assert(cond, str) static_assert(cond, str) |
Typedefs | |
template<bool V, typename T , typename F > | |
using | flecs::conditional_t = typename std::conditional<V, T, F>::type |
template<typename T > | |
using | flecs::decay_t = typename std::decay<T>::type |
template<bool V, typename T = void> | |
using | flecs::enable_if_t = typename std::enable_if<V, T>::type |
template<typename T > | |
using | flecs::remove_pointer_t = typename std::remove_pointer<T>::type |
template<typename T > | |
using | flecs::remove_reference_t = typename std::remove_reference<T>::type |
template<typename T > | |
using | flecs::underlying_type_t = typename std::underlying_type<T>::type |
template<typename T > | |
using | flecs::is_const_p = is_const< remove_pointer_t<T> > |
template<class Src , class Dst > | |
using | flecs::transcribe_const_t = conditional_t<is_const<Src>::value, Dst const, Dst> |
template<class Src , class Dst > | |
using | flecs::transcribe_volatile_t = conditional_t<is_volatile<Src>::value, Dst volatile, Dst> |
template<class Src , class Dst > | |
using | flecs::transcribe_cv_t = transcribe_const_t< Src, transcribe_volatile_t< Src, Dst> > |
template<class Src , class Dst > | |
using | flecs::transcribe_pointer_t = conditional_t<is_pointer<Src>::value, Dst*, Dst> |
template<class Src , class Dst > | |
using | flecs::transcribe_cvp_t = transcribe_cv_t< Src, transcribe_pointer_t< Src, Dst> > |
template<bool V> | |
using | flecs::if_t = enable_if_t<V, int> |
template<bool V> | |
using | flecs::if_not_t = enable_if_t<false == V, int> |
Functions | |
template<class Ty > | |
void | flecs::_::destruct_obj (Ty *_ptr) |
template<class Ty > | |
void | flecs::_::free_obj (void *_ptr) |
void * | operator new (size_t, flecs::_::placement_new_tag_t, void *_ptr) noexcept |
void | operator delete (void *, flecs::_::placement_new_tag_t, void *) noexcept |
Variables | |
constexpr placement_new_tag_t | flecs::_::placement_new_tag {} |
Flecs STL (FTL?)
Flecs STL (FTL?) Minimalistic utilities that allow for STL like functionality without having to depend on the actual STL.
Definition in file utils.hpp.
#define FLECS_DELETE | ( | _ptr | ) |
#define FLECS_FWD | ( | ... | ) | static_cast<decltype(__VA_ARGS__)&&>(__VA_ARGS__) |
#define FLECS_MOV | ( | ... | ) | static_cast<flecs::remove_reference_t<decltype(__VA_ARGS__)>&&>(__VA_ARGS__) |
#define FLECS_NEW | ( | _type | ) | FLECS_PLACEMENT_NEW(ecs_os_malloc(sizeof(_type)), _type) |
#define FLECS_PLACEMENT_NEW | ( | _ptr, | |
_type ) ::new(flecs::_::placement_new_tag, _ptr) _type |
#define flecs_static_assert | ( | cond, | |
str ) static_assert(cond, str) |
using flecs::conditional_t = typename std::conditional<V, T, F>::type |
using flecs::decay_t = typename std::decay<T>::type |
using flecs::enable_if_t = typename std::enable_if<V, T>::type |
using flecs::if_not_t = enable_if_t<false == V, int> |
using flecs::is_const_p = is_const< remove_pointer_t<T> > |
using flecs::remove_pointer_t = typename std::remove_pointer<T>::type |
using flecs::remove_reference_t = typename std::remove_reference<T>::type |
using flecs::transcribe_const_t = conditional_t<is_const<Src>::value, Dst const, Dst> |
using flecs::transcribe_cv_t = transcribe_const_t< Src, transcribe_volatile_t< Src, Dst> > |
using flecs::transcribe_cvp_t = transcribe_cv_t< Src, transcribe_pointer_t< Src, Dst> > |
using flecs::transcribe_pointer_t = conditional_t<is_pointer<Src>::value, Dst*, Dst> |
using flecs::transcribe_volatile_t = conditional_t<is_volatile<Src>::value, Dst volatile, Dst> |
using flecs::underlying_type_t = typename std::underlying_type<T>::type |
|
inlinenoexcept |
|
inlinenoexcept |