PCRE2 C++ Wrapper
1.2.4
pcre2cpp
Loading...
Searching...
No Matches
config.hpp
Go to the documentation of this file.
1
/*
2
* pcre2cpp - PCRE2 cpp wrapper
3
*
4
* Licensed under the BSD 3-Clause License with Attribution Requirement.
5
* See the LICENSE file for details: https://github.com/MAIPA01/pcre2cpp/blob/main/LICENSE
6
*
7
* Copyright (c) 2025, Patryk Antosik (MAIPA01)
8
*
9
* PCRE2 library included in this project:
10
* Copyright (c) 2016-2024, University of Cambridge.
11
*
12
* See the LICENSE_PCRE2 file for details: https://github.com/MAIPA01/pcre2cpp/blob/main/LICENSE_PCRE2
13
*/
14
15
#pragma once
16
#ifndef _PCRE2CPP_CONFIG_HPP_
17
#define _PCRE2CPP_CONFIG_HPP_
18
23
29
34
39
40
#pragma region VERSION
45
#define PCRE2CPP_VERSION_MAJOR 1
50
#define PCRE2CPP_VERSION_MINOR 2
55
#define PCRE2CPP_VERSION_PATCH 4
56
61
#define _PCRE2CPP_STRINGIFY_HELPER(x) #x
62
67
#define _PCRE2CPP_VERSION_TO_STRING(major, minor, patch) \
68
_PCRE2CPP_STRINGIFY_HELPER(major) "." _PCRE2CPP_STRINGIFY_HELPER(minor) "." _PCRE2CPP_STRINGIFY_HELPER(patch)
69
73
#define _PCRE2CPP_VERSION_TO_INT(major, minor, patch) (major * 100 + minor * 10 + patch)
74
79
#define PCRE2CPP_VERSION_STRING \
80
_PCRE2CPP_VERSION_TO_STRING(PCRE2CPP_VERSION_MAJOR, PCRE2CPP_VERSION_MINOR, PCRE2CPP_VERSION_PATCH)
81
85
#define PCRE2CPP_VERSION_INT _PCRE2CPP_VERSION_TO_INT(PCRE2CPP_VERSION_MAJOR, PCRE2CPP_VERSION_MINOR, PCRE2CPP_VERSION_PATCH)
90
#define PCRE2CPP_VERSION PCRE2CPP_VERSION_STRING
91
#pragma endregion
92
93
#pragma region LAST_UPDATE
98
#define PCRE2CPP_LAST_UPDATE_DAY 07
103
#define PCRE2CPP_LAST_UPDATE_MONTH 04
108
#define PCRE2CPP_LAST_UPDATE_YEAR 2026
109
114
#define _PCRE2CPP_LAST_UPDATE_DATE_HELPER(day, month, year) \
115
_PCRE2CPP_STRINGIFY_HELPER(day) "." _PCRE2CPP_STRINGIFY_HELPER(month) "." _PCRE2CPP_STRINGIFY_HELPER(year)
116
121
#define PCRE2CPP_LAST_UPDATE_DATE \
122
_PCRE2CPP_LAST_UPDATE_DATE_HELPER(PCRE2CPP_LAST_UPDATE_DAY, PCRE2CPP_LAST_UPDATE_MONTH, PCRE2CPP_LAST_UPDATE_YEAR)
123
#pragma endregion
124
125
#pragma region CXX_VERSIONS
131
#ifndef _HAS_CXX17
132
// clang-format off
133
#define _PCRE2CPP_HAS_CXX17 __cplusplus >= 201703l
134
// clang-format on
135
#else
136
#define _PCRE2CPP_HAS_CXX17 _HAS_CXX17
137
#endif
138
144
#ifndef PCRE2CPP_ENABLE_CXX20
145
#define _PCRE2CPP_HAS_CXX20 0
146
#elif !defined(_HAS_CXX20)
147
// clang-format off
148
#define _PCRE2CPP_HAS_CXX20 __cplusplus >= 202002l
149
// clang-format on
150
#else
151
#define _PCRE2CPP_HAS_CXX20 _HAS_CXX20
152
#endif
153
#pragma endregion
154
160
166
167
#ifdef PCRE2CPP_CHANGE_ASSERTS_TO_EXCEPTIONS
168
#define _PCRE2CPP_HAS_EXCEPTIONS _PCRE2CPP_HAS_CXX17
169
#define _PCRE2CPP_HAS_ASSERTS 0
170
#else
171
#define _PCRE2CPP_HAS_EXCEPTIONS 0
172
#define _PCRE2CPP_HAS_ASSERTS _PCRE2CPP_HAS_CXX17
173
#endif
174
175
#if _PCRE2CPP_HAS_EXCEPTIONS
176
#define _PCRE2CPP_NOEXCEPT noexcept
177
#else
178
#define _PCRE2CPP_NOEXCEPT
179
#endif
180
181
#pragma region UTFS_ENABLED
187
193
199
200
#ifdef PCRE2CPP_DISABLE_UTF8
201
#define _PCRE2CPP_HAS_UTF8 0
202
#else
203
#define _PCRE2CPP_HAS_UTF8 1
204
#define PCRE2_CODE_UNIT_WIDTH 8
205
#endif
206
207
#ifdef PCRE2CPP_DISABLE_UTF16
208
#define _PCRE2CPP_HAS_UTF16 0
209
#else
210
#define _PCRE2CPP_HAS_UTF16 1
211
#ifndef PCRE2_CODE_UNIT_WIDTH
212
#define PCRE2_CODE_UNIT_WIDTH 16
213
#else
214
#define PCRE2_CODE_UNIT_WIDTH 0
215
#endif
216
#endif
217
218
#ifdef PCRE2CPP_DISABLE_UTF32
219
#define _PCRE2CPP_HAS_UTF32 0
220
#else
221
#define _PCRE2CPP_HAS_UTF32 1
222
#ifndef PCRE2_CODE_UNIT_WIDTH
223
#define PCRE2_CODE_UNIT_WIDTH 32
224
#else
225
#define PCRE2_CODE_UNIT_WIDTH 0
226
#endif
227
#endif
228
#pragma endregion
229
230
#pragma region VERSION_SPECIFIC_VALUES
236
#if _PCRE2CPP_HAS_CXX17
237
#define _PCRE2CPP_CONSTEXPR17 constexpr
238
#else
239
#define _PCRE2CPP_CONSTEXPR17
240
#endif
241
247
253
#if _PCRE2CPP_HAS_CXX20
254
#define _PCRE2CPP_CONSTEXPR20 constexpr
255
#define _PCRE2CPP_REQUIRES(condition) requires (condition)
256
#else
257
#define _PCRE2CPP_CONSTEXPR20
258
#define _PCRE2CPP_REQUIRES(condition)
259
#endif
260
#pragma endregion
261
262
#include <mstd/mstd.hpp>
263
268
#define _PCRE2CPP_MESSAGE(MESSAGE) _MSTD_MESSAGE(MESSAGE)
273
#define _PCRE2CPP_WARNING(MESSAGE) _MSTD_WARNING(MESSAGE)
278
#define _PCRE2CPP_ERROR(MESSAGE) _MSTD_ERROR(MESSAGE)
279
#endif
pcre2cpp
include
pcre2cpp
config.hpp
Generated by
1.15.0