#pragma once #ifndef __PL_COREDEFS_H__ #define __PL_COREDEFS_H__ #if __cplusplus >= 199711L #define PL_IS_CPP11 1 #else #define PL_IS_CPP11 0 #endif #if PL_IS_CPP11 #define PL_DELETED = delete #define PL_STATIC_ASSERT(n) static_assert((n), "Static assert failed: " #n) #else #ifndef nullptr #define nullptr 0 #endif #ifndef override #define override #endif #ifndef final #define final #endif #define PL_DELETED template struct __PL_StaticAssertHelper { }; template<> struct __PL_StaticAssertHelper { int staticAssertFailed; }; #define PL_STATIC_ASSERT(n) ((void)(&static_cast*>(nullptr)->staticAssertFailed)) #endif static const size_t PL_SYSTEM_MEMORY_ALIGNMENT = 16; #endif