2020-01-01 20:24:46 -05:00
|
|
|
#pragma once
|
|
|
|
|
|
2020-10-10 02:42:06 -04:00
|
|
|
#include <stdint.h>
|
2021-03-18 17:08:11 -04:00
|
|
|
#include <stddef.h>
|
2020-10-10 02:42:06 -04:00
|
|
|
|
2020-01-01 20:24:46 -05:00
|
|
|
#if __cplusplus >= 199711L
|
|
|
|
|
#define GP_IS_CPP11 1
|
|
|
|
|
#else
|
|
|
|
|
#define GP_IS_CPP11 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2020-09-28 09:58:19 -04:00
|
|
|
#ifdef _MSC_VER
|
|
|
|
|
#define GP_ALIGNED(n) __declspec(align(n))
|
|
|
|
|
#else
|
|
|
|
|
#define GP_ALIGNED(n) __attribute__((aligned(n)))
|
|
|
|
|
#endif
|
|
|
|
|
|
2020-01-01 20:24:46 -05:00
|
|
|
#if GP_IS_CPP11
|
|
|
|
|
#define GP_DELETED = delete
|
|
|
|
|
#define GP_STATIC_ASSERT(n) static_assert((n), "Static assert failed: " #n)
|
2021-04-29 20:16:24 -04:00
|
|
|
#define GP_RESTRICT __restrict
|
2020-01-01 20:24:46 -05:00
|
|
|
#else
|
|
|
|
|
#ifndef nullptr
|
|
|
|
|
#define nullptr 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef override
|
|
|
|
|
#define override
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef final
|
|
|
|
|
#define final
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#define GP_DELETED
|
2021-04-29 20:16:24 -04:00
|
|
|
#define GP_RESTRICT
|
2020-01-01 20:24:46 -05:00
|
|
|
|
|
|
|
|
template<bool TCondition>
|
|
|
|
|
struct __GpStaticAssertHelper
|
|
|
|
|
{
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template<>
|
|
|
|
|
struct __GpStaticAssertHelper<true>
|
|
|
|
|
{
|
|
|
|
|
int staticAssertFailed;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#define GP_STATIC_ASSERT(n) ((void)(&static_cast<const __GpStaticAssertHelper<(n)>*>(nullptr)->staticAssertFailed))
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
static const size_t GP_SYSTEM_MEMORY_ALIGNMENT = 16;
|
|
|
|
|
|
2020-09-12 23:07:44 -04:00
|
|
|
#if !defined(GP_DEBUG_CONFIG)
|
|
|
|
|
#error "GP_DEBUG_CONFIG was not set"
|
2020-02-18 20:53:54 -05:00
|
|
|
#endif
|
2021-03-29 21:41:11 -04:00
|
|
|
|
|
|
|
|
#ifdef __EMSCRIPTEN__
|
|
|
|
|
#define GP_ASYNCIFY_PARANOID 1
|
|
|
|
|
#else
|
|
|
|
|
#define GP_ASYNCIFY_PARANOID 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2021-04-19 01:02:10 -04:00
|
|
|
#define GP_ASYNCIFY_PARANOID_VALIDATION 0
|
|
|
|
|
|
2021-03-29 21:41:11 -04:00
|
|
|
#if GP_ASYNCIFY_PARANOID
|
|
|
|
|
#define GP_ASYNCIFY_PARANOID_VIRTUAL
|
|
|
|
|
#define GP_ASYNCIFY_PARANOID_PURE
|
|
|
|
|
#define GP_ASYNCIFY_PARANOID_OVERRIDE
|
2021-04-19 01:02:10 -04:00
|
|
|
#define GP_ASYNCIFY_PARANOID_NAMED(n) GpAsyncifyParanoid##n
|
2021-03-29 21:41:11 -04:00
|
|
|
#else
|
|
|
|
|
#define GP_ASYNCIFY_PARANOID_VIRTUAL virtual
|
|
|
|
|
#define GP_ASYNCIFY_PARANOID_PURE = 0
|
|
|
|
|
#define GP_ASYNCIFY_PARANOID_OVERRIDE override
|
2021-04-19 01:02:10 -04:00
|
|
|
#define GP_ASYNCIFY_PARANOID_NAMED(n) n
|
2021-03-29 21:41:11 -04:00
|
|
|
#endif
|