simdjson
3.11.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++ 23
17
#if !defined(SIMDJSON_CPLUSPLUS23) && (SIMDJSON_CPLUSPLUS >= 202302L)
18
#define SIMDJSON_CPLUSPLUS23 1
19
#endif
20
21
// C++ 20
22
#if !defined(SIMDJSON_CPLUSPLUS20) && (SIMDJSON_CPLUSPLUS >= 202002L)
23
#define SIMDJSON_CPLUSPLUS20 1
24
#endif
25
26
// C++ 17
27
#if !defined(SIMDJSON_CPLUSPLUS17) && (SIMDJSON_CPLUSPLUS >= 201703L)
28
#define SIMDJSON_CPLUSPLUS17 1
29
#endif
30
31
// C++ 14
32
#if !defined(SIMDJSON_CPLUSPLUS14) && (SIMDJSON_CPLUSPLUS >= 201402L)
33
#define SIMDJSON_CPLUSPLUS14 1
34
#endif
35
36
// C++ 11
37
#if !defined(SIMDJSON_CPLUSPLUS11) && (SIMDJSON_CPLUSPLUS >= 201103L)
38
#define SIMDJSON_CPLUSPLUS11 1
39
#endif
40
41
#ifndef SIMDJSON_CPLUSPLUS11
42
#error simdjson requires a compiler compliant with the C++11 standard
43
#endif
44
45
#ifndef SIMDJSON_IF_CONSTEXPR
46
#if SIMDJSON_CPLUSPLUS17
47
#define SIMDJSON_IF_CONSTEXPR if constexpr
48
#else
49
#define SIMDJSON_IF_CONSTEXPR if
50
#endif
51
#endif
52
53
#ifdef __has_include
54
#if __has_include(<version>)
55
#include <version>
56
#endif
57
#endif
58
59
#ifdef __cpp_concepts
60
#include <utility>
61
#define SIMDJSON_SUPPORTS_DESERIALIZATION 1
62
#else
// __cpp_concepts
63
#define SIMDJSON_SUPPORTS_DESERIALIZATION 0
64
#endif
65
#endif
// SIMDJSON_COMPILER_CHECK_H
include
simdjson
compiler_check.h
Generated by
1.9.1