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