simdjson  3.7.0
Ridiculously Fast JSON
compiler_check.h
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 #ifndef SIMDJSON_IF_CONSTEXPR
36 #if SIMDJSON_CPLUSPLUS17
37 #define SIMDJSON_IF_CONSTEXPR if constexpr
38 #else
39 #define SIMDJSON_IF_CONSTEXPR if
40 #endif
41 #endif
42 
43 #endif // SIMDJSON_COMPILER_CHECK_H