1 | #ifndef SIMDJSON_COMPILER_CHECK_H |
2 | #define SIMDJSON_COMPILER_CHECK_H |
3 | |
4 | #ifndef __cplusplus |
5 | #error simdjson requires a C++ compiler |
6 | #endif |
7 | |
8 | #ifndef SIMDJSON_CPLUSPLUS |
9 | #if defined(_MSVC_LANG) && !defined(__clang__) |
10 | #define SIMDJSON_CPLUSPLUS (_MSC_VER == 1900 ? 201103L : _MSVC_LANG) |
11 | #else |
12 | #define SIMDJSON_CPLUSPLUS __cplusplus |
13 | #endif |
14 | #endif |
15 | |
16 | // C++ 17 |
17 | #if !defined(SIMDJSON_CPLUSPLUS17) && (SIMDJSON_CPLUSPLUS >= 201703L) |
18 | #define SIMDJSON_CPLUSPLUS17 1 |
19 | #endif |
20 | |
21 | // C++ 14 |
22 | #if !defined(SIMDJSON_CPLUSPLUS14) && (SIMDJSON_CPLUSPLUS >= 201402L) |
23 | #define SIMDJSON_CPLUSPLUS14 1 |
24 | #endif |
25 | |
26 | // C++ 11 |
27 | #if !defined(SIMDJSON_CPLUSPLUS11) && (SIMDJSON_CPLUSPLUS >= 201103L) |
28 | #define SIMDJSON_CPLUSPLUS11 1 |
29 | #endif |
30 | |
31 | #ifndef SIMDJSON_CPLUSPLUS11 |
32 | #error simdjson requires a compiler compliant with the C++11 standard |
33 | #endif |
34 | |
35 | #endif // SIMDJSON_COMPILER_CHECK_H |
36 | |