43#if !defined(MRC_DEPRECATED) && !defined(MRC_DEPRECATED_REASON) 
   44#  if defined(__cplusplus)  
   45#    ifdef __has_cpp_attribute 
   46#      if __has_cpp_attribute(deprecated) 
   47#        define MRC_DEPRECATED [[deprecated]] 
   49#          define MRC_DEPRECATED_REASON(str) [[deprecated("is deprecated: " str)]]  
   51#          define MRC_DEPRECATED_REASON(str) [[deprecated(str)]] 
   55#  elif defined(_MSC_VER)  
   56#    if _MSC_VER >= 1937 && __STDC_VERSION__ >= 202312  
   57#      define MRC_DEPRECATED [[deprecated]] 
   58#      define MRC_DEPRECATED_REASON(str) [[deprecated("is deprecated: " str)]]  
   60#      define MRC_DEPRECATED __declspec(deprecated) 
   61#      define MRC_DEPRECATED_REASON(str) __declspec(deprecated("is deprecated: " str))  
   64#    if defined(__has_c_attribute) && (__STDC_VERSION__ >= 202311 || !defined(__GNUC__))  
   65#      if __has_c_attribute(deprecated) 
   66#        define MRC_DEPRECATED [[deprecated]] 
   67#        define MRC_DEPRECATED_REASON(str) [[deprecated(str)]] 
   70#    if !defined(MRC_DEPRECATED) && defined(__GNUC__) 
   71#      define MRC_DEPRECATED __attribute__((__deprecated__)) 
   72#      define MRC_DEPRECATED_REASON(str) __attribute__((__deprecated__(str))) 
   75#  ifndef MRC_DEPRECATED  
   76#    define MRC_DEPRECATED 
   78#  ifndef MRC_DEPRECATED_REASON 
   79#    define MRC_DEPRECATED_REASON(str) MRC_DEPRECATED 
MRC_API void * MR_AllocArray(size_t num_bytes)
MRC_API void MR_FreeArray(void *ptr)
Deallocates memory that was previously allocated with MR_AllocArray(). Does nothing if the pointer is...
int64_t MR_int64_t
Definition common.h:13
MR_PassBy
Definition common.h:19
@ MR_PassBy_NoObject
Definition common.h:24
@ MR_PassBy_DefaultConstruct
Definition common.h:20
@ MR_PassBy_DefaultArgument
Definition common.h:23
@ MR_PassBy_Move
Definition common.h:22
@ MR_PassBy_Copy
Definition common.h:21
MRC_API void * MR_Alloc(size_t num_bytes)
Allocates n bytes of memory, which can then be freed using MR_Free().
MRC_API void MR_Free(void *ptr)
Deallocates memory that was previously allocated with MR_Alloc(). Does nothing if the pointer is null...
uint64_t MR_uint64_t
Definition common.h:14
#define MRC_API
Definition exports.h:11