Program Listing for File Macros.h¶
↰ Return to documentation for file (Source\Common\Inc\Utils\Macros.h
)
#pragma once
#if defined(WIN32) || defined(_WIN32)
#include <malloc.h>
#define ALIGNED_ALLOC(alignment, size) _aligned_malloc(size, alignment)
#define ALIGNED_FREE(ptr) _aligned_free(ptr)
#elif defined(UNIX) || defined(__linux__)
#include <malloc.h>
#define ALIGNED_ALLOC(alignment, size) memalign(alignment, size)
#define ALIGNED_FREE(ptr) free(ptr)
#elif defined(APPLE) || defined(__linux__)
#define ALIGNED_ALLOC(alignment, size) memalign(alignment, size)
#define ALIGNED_FREE(ptr) free(ptr)
#endif
#define UNUSED(x) (void)(x)
#define SCALE_SIZE(val, size) ((val + size - 1) & ~(size - 1))
#define FORWARD_MAPPING(TYPE_A, TYPE_B) \
case TYPE_A: \
return TYPE_B;
#define REVERSE_MAPPING(TYPE_A, TYPE_B) \
case TYPE_B: \
return TYPE_A;
#define VERIFY_TRUE(Logger, res, message) \
if ((res) != true) { \
LOG_ERR(Logger, LOG_LEVEL, message); \
throw std::runtime_error(message); \
}
#define VERIFY_OPT(Logger, res, message) \
if (!(res)) { \
LOG_ERR(Logger, LOG_LEVEL, message); \
throw std::runtime_error(message); \
}
#define FAIL_IF(Logger, res, message) \
if ((res)) { \
LOG_ERR(Logger, LOG_LEVEL, message); \
throw std::runtime_error(message); \
}
#define ENUM_HAS(enumVar, value) \
(enumVar & value) == value
#define CASE_STR(r) \
case r: \
return #r
// Credit Source:
// http://lucumr.pocoo.org/2013/8/18/beautiful-native-libraries/
#ifndef AZURA_API
# ifdef _WIN32
# if defined(YL_BUILD_SHARED) /* build dll */
# define AZURA_API __declspec(dllexport)
# elif !defined(YL_BUILD_STATIC) /* use dll */
# define AZURA_API __declspec(dllimport)
# else /* static library */
# define AZURA_API
# endif
# else
# if __GNUC__ >= 4
# define AZURA_API __attribute__((visibility("default")))
# else
# define AZURA_API
# endif
# endif
#endif