LIPH's C++ Codes
macros.h
Go to the documentation of this file.
1#ifndef LIPH_MACROS_H_
2#define LIPH_MACROS_H_
3
4#define ARRAYSIZE(arr) (sizeof(arr) / sizeof(*(arr)))
5
6#if defined(_WIN32) || defined(_WIN64)
7#define OS_WINDOWS
8#elif defined(__linux__)
9#define OS_LINUX
10#elif defined(__APPLE__)
11#define OS_APPLE
12#endif
13
14#if defined(OS_LINUX) || defined(OS_APPLE) || defined(unix) || defined(__unix__) || defined(__unix)
15#define OS_UNIX
16#endif
17
18#if __cplusplus < 201103L
19#define USE_CPP98
20#define USE_CPP03
21#elif __cplusplus >= 201103L && __cplusplus < 201402L
22#define USE_CPP11
23#elif __cplusplus >= 201402L && __cplusplus < 201703L
24#define USE_CPP14
25#elif __cplusplus >= 201703L && __cplusplus < 202002L
26#define USE_CPP17
27#elif __cplusplus >= 202002L && __cplusplus < 202302L
28#define USE_CPP20
29#elif __cplusplus >= 202302L
30#define USE_CPP23
31#endif
32
33#endif // LIPH_MACROS_H_