#ifndef ENTT_CONFIG_CONFIG_H
|
|
#define ENTT_CONFIG_CONFIG_H
|
|
|
|
#include "version.h"
|
|
|
|
#if defined(__cpp_exceptions) && !defined(ENTT_NOEXCEPTION)
|
|
# define ENTT_THROW throw
|
|
# define ENTT_TRY try
|
|
# define ENTT_CATCH catch(...)
|
|
#else
|
|
# define ENTT_THROW
|
|
# define ENTT_TRY if(true)
|
|
# define ENTT_CATCH if(false)
|
|
#endif
|
|
|
|
#ifndef ENTT_NOEXCEPT
|
|
# define ENTT_NOEXCEPT noexcept
|
|
# define ENTT_NOEXCEPT_IF(expr) noexcept(expr)
|
|
# else
|
|
# define ENTT_NOEXCEPT_IF(...)
|
|
#endif
|
|
|
|
#ifdef ENTT_USE_ATOMIC
|
|
# include <atomic>
|
|
# define ENTT_MAYBE_ATOMIC(Type) std::atomic<Type>
|
|
#else
|
|
# define ENTT_MAYBE_ATOMIC(Type) Type
|
|
#endif
|
|
|
|
#ifndef ENTT_ID_TYPE
|
|
# include <cstdint>
|
|
# define ENTT_ID_TYPE std::uint32_t
|
|
#endif
|
|
|
|
#ifndef ENTT_SPARSE_PAGE
|
|
# define ENTT_SPARSE_PAGE 4096
|
|
#endif
|
|
|
|
#ifndef ENTT_PACKED_PAGE
|
|
# define ENTT_PACKED_PAGE 1024
|
|
#endif
|
|
|
|
#ifdef ENTT_DISABLE_ASSERT
|
|
# undef ENTT_ASSERT
|
|
# define ENTT_ASSERT(...) (void(0))
|
|
#elif !defined ENTT_ASSERT
|
|
# include <cassert>
|
|
# define ENTT_ASSERT(condition, ...) assert(condition)
|
|
#endif
|
|
|
|
#ifdef ENTT_NO_ETO
|
|
# define ENTT_IGNORE_IF_EMPTY false
|
|
#else
|
|
# define ENTT_IGNORE_IF_EMPTY true
|
|
#endif
|
|
|
|
#ifdef ENTT_STANDARD_CPP
|
|
# define ENTT_NONSTD false
|
|
#else
|
|
# define ENTT_NONSTD true
|
|
# if defined __clang__ || defined __GNUC__
|
|
# define ENTT_PRETTY_FUNCTION __PRETTY_FUNCTION__
|
|
# define ENTT_PRETTY_FUNCTION_PREFIX '='
|
|
# define ENTT_PRETTY_FUNCTION_SUFFIX ']'
|
|
# elif defined _MSC_VER
|
|
# define ENTT_PRETTY_FUNCTION __FUNCSIG__
|
|
# define ENTT_PRETTY_FUNCTION_PREFIX '<'
|
|
# define ENTT_PRETTY_FUNCTION_SUFFIX '>'
|
|
# endif
|
|
#endif
|
|
|
|
#if defined _MSC_VER
|
|
# pragma detect_mismatch("entt.version", ENTT_VERSION)
|
|
# pragma detect_mismatch("entt.noexcept", ENTT_XSTR(ENTT_TRY))
|
|
# pragma detect_mismatch("entt.id", ENTT_XSTR(ENTT_ID_TYPE))
|
|
# pragma detect_mismatch("entt.nonstd", ENTT_XSTR(ENTT_NONSTD))
|
|
#endif
|
|
|
|
#endif
|