Chris@16
|
1 /*
|
Chris@16
|
2 *
|
Chris@16
|
3 * Copyright (c) 1998-2002
|
Chris@16
|
4 * John Maddock
|
Chris@16
|
5 *
|
Chris@16
|
6 * Use, modification and distribution are subject to the
|
Chris@16
|
7 * Boost Software License, Version 1.0. (See accompanying file
|
Chris@16
|
8 * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
9 *
|
Chris@16
|
10 */
|
Chris@16
|
11
|
Chris@16
|
12 /*
|
Chris@16
|
13 * LOCATION: see http://www.boost.org for most recent version.
|
Chris@16
|
14 * FILE config.hpp
|
Chris@16
|
15 * VERSION see <boost/version.hpp>
|
Chris@16
|
16 * DESCRIPTION: regex extended config setup.
|
Chris@16
|
17 */
|
Chris@16
|
18
|
Chris@16
|
19 #ifndef BOOST_REGEX_CONFIG_HPP
|
Chris@16
|
20 #define BOOST_REGEX_CONFIG_HPP
|
Chris@16
|
21 /*
|
Chris@16
|
22 * Borland C++ Fix/error check
|
Chris@16
|
23 * this has to go *before* we include any std lib headers:
|
Chris@16
|
24 */
|
Chris@16
|
25 #if defined(__BORLANDC__)
|
Chris@16
|
26 # include <boost/regex/config/borland.hpp>
|
Chris@16
|
27 #endif
|
Chris@16
|
28
|
Chris@16
|
29 /*****************************************************************************
|
Chris@16
|
30 *
|
Chris@16
|
31 * Include all the headers we need here:
|
Chris@16
|
32 *
|
Chris@16
|
33 ****************************************************************************/
|
Chris@16
|
34
|
Chris@16
|
35 #ifdef __cplusplus
|
Chris@16
|
36
|
Chris@16
|
37 # ifndef BOOST_REGEX_USER_CONFIG
|
Chris@16
|
38 # define BOOST_REGEX_USER_CONFIG <boost/regex/user.hpp>
|
Chris@16
|
39 # endif
|
Chris@16
|
40
|
Chris@16
|
41 # include BOOST_REGEX_USER_CONFIG
|
Chris@16
|
42
|
Chris@16
|
43 # include <boost/config.hpp>
|
Chris@16
|
44
|
Chris@16
|
45 #else
|
Chris@16
|
46 /*
|
Chris@16
|
47 * C build,
|
Chris@16
|
48 * don't include <boost/config.hpp> because that may
|
Chris@16
|
49 * do C++ specific things in future...
|
Chris@16
|
50 */
|
Chris@16
|
51 # include <stdlib.h>
|
Chris@16
|
52 # include <stddef.h>
|
Chris@16
|
53 # ifdef _MSC_VER
|
Chris@16
|
54 # define BOOST_MSVC _MSC_VER
|
Chris@16
|
55 # endif
|
Chris@16
|
56 #endif
|
Chris@16
|
57
|
Chris@16
|
58 /*****************************************************************************
|
Chris@16
|
59 *
|
Chris@16
|
60 * Boilerplate regex config options:
|
Chris@16
|
61 *
|
Chris@16
|
62 ****************************************************************************/
|
Chris@16
|
63
|
Chris@16
|
64 /* Obsolete macro, use BOOST_VERSION instead: */
|
Chris@16
|
65 #define BOOST_RE_VERSION 320
|
Chris@16
|
66
|
Chris@16
|
67 /* fix: */
|
Chris@16
|
68 #if defined(_UNICODE) && !defined(UNICODE)
|
Chris@16
|
69 #define UNICODE
|
Chris@16
|
70 #endif
|
Chris@16
|
71
|
Chris@16
|
72 /*
|
Chris@16
|
73 * Fix for gcc prior to 3.4: std::ctype<wchar_t> doesn't allow
|
Chris@16
|
74 * masks to be combined, for example:
|
Chris@16
|
75 * std::use_facet<std::ctype<wchar_t> >.is(std::ctype_base::lower|std::ctype_base::upper, L'a');
|
Chris@16
|
76 * returns *false*.
|
Chris@16
|
77 */
|
Chris@16
|
78 #ifdef __GLIBCPP__
|
Chris@16
|
79 # define BOOST_REGEX_BUGGY_CTYPE_FACET
|
Chris@16
|
80 #endif
|
Chris@16
|
81
|
Chris@16
|
82 /*
|
Chris@16
|
83 * Intel C++ before 8.0 ends up with unresolved externals unless we turn off
|
Chris@16
|
84 * extern template support:
|
Chris@16
|
85 */
|
Chris@16
|
86 #if defined(BOOST_INTEL) && defined(__cplusplus) && (BOOST_INTEL <= 800)
|
Chris@16
|
87 # define BOOST_REGEX_NO_EXTERNAL_TEMPLATES
|
Chris@16
|
88 #endif
|
Chris@16
|
89 /*
|
Chris@16
|
90 * Visual C++ doesn't support external templates with C++ extensions turned off:
|
Chris@16
|
91 */
|
Chris@16
|
92 #if defined(_MSC_VER) && !defined(_MSC_EXTENSIONS)
|
Chris@16
|
93 # define BOOST_REGEX_NO_EXTERNAL_TEMPLATES
|
Chris@16
|
94 #endif
|
Chris@16
|
95 /*
|
Chris@16
|
96 * Shared regex lib will crash without this, frankly it looks a lot like a gcc bug:
|
Chris@16
|
97 */
|
Chris@16
|
98 #if defined(__MINGW32__)
|
Chris@16
|
99 # define BOOST_REGEX_NO_EXTERNAL_TEMPLATES
|
Chris@16
|
100 #endif
|
Chris@16
|
101
|
Chris@16
|
102 /*
|
Chris@16
|
103 * If there isn't good enough wide character support then there will
|
Chris@16
|
104 * be no wide character regular expressions:
|
Chris@16
|
105 */
|
Chris@16
|
106 #if (defined(BOOST_NO_CWCHAR) || defined(BOOST_NO_CWCTYPE) || defined(BOOST_NO_STD_WSTRING))
|
Chris@16
|
107 # if !defined(BOOST_NO_WREGEX)
|
Chris@16
|
108 # define BOOST_NO_WREGEX
|
Chris@16
|
109 # endif
|
Chris@16
|
110 #else
|
Chris@16
|
111 # if defined(__sgi) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
|
Chris@16
|
112 /* STLPort on IRIX is misconfigured: <cwctype> does not compile
|
Chris@16
|
113 * as a temporary fix include <wctype.h> instead and prevent inclusion
|
Chris@16
|
114 * of STLPort version of <cwctype> */
|
Chris@16
|
115 # include <wctype.h>
|
Chris@16
|
116 # define __STLPORT_CWCTYPE
|
Chris@16
|
117 # define _STLP_CWCTYPE
|
Chris@16
|
118 # endif
|
Chris@16
|
119
|
Chris@16
|
120 #ifdef __cplusplus
|
Chris@16
|
121 # include <boost/regex/config/cwchar.hpp>
|
Chris@16
|
122 #endif
|
Chris@16
|
123
|
Chris@16
|
124 #endif
|
Chris@16
|
125
|
Chris@16
|
126 /*
|
Chris@16
|
127 * If Win32 support has been disabled for boost in general, then
|
Chris@16
|
128 * it is for regex in particular:
|
Chris@16
|
129 */
|
Chris@16
|
130 #if defined(BOOST_DISABLE_WIN32) && !defined(BOOST_REGEX_NO_W32)
|
Chris@16
|
131 # define BOOST_REGEX_NO_W32
|
Chris@16
|
132 #endif
|
Chris@16
|
133
|
Chris@16
|
134 /* disable our own file-iterators and mapfiles if we can't
|
Chris@16
|
135 * support them: */
|
Chris@16
|
136 #if !defined(BOOST_HAS_DIRENT_H) && !(defined(_WIN32) && !defined(BOOST_REGEX_NO_W32))
|
Chris@16
|
137 # define BOOST_REGEX_NO_FILEITER
|
Chris@16
|
138 #endif
|
Chris@16
|
139
|
Chris@16
|
140 /* backwards compatibitity: */
|
Chris@16
|
141 #if defined(BOOST_RE_NO_LIB)
|
Chris@16
|
142 # define BOOST_REGEX_NO_LIB
|
Chris@16
|
143 #endif
|
Chris@16
|
144
|
Chris@16
|
145 #if defined(__GNUC__) && (defined(_WIN32) || defined(__CYGWIN__))
|
Chris@16
|
146 /* gcc on win32 has problems if you include <windows.h>
|
Chris@16
|
147 (sporadically generates bad code). */
|
Chris@16
|
148 # define BOOST_REGEX_NO_W32
|
Chris@16
|
149 #endif
|
Chris@16
|
150 #if defined(__COMO__) && !defined(BOOST_REGEX_NO_W32) && !defined(_MSC_EXTENSIONS)
|
Chris@16
|
151 # define BOOST_REGEX_NO_W32
|
Chris@16
|
152 #endif
|
Chris@16
|
153
|
Chris@16
|
154 /*****************************************************************************
|
Chris@16
|
155 *
|
Chris@16
|
156 * Wide character workarounds:
|
Chris@16
|
157 *
|
Chris@16
|
158 ****************************************************************************/
|
Chris@16
|
159
|
Chris@16
|
160 /*
|
Chris@16
|
161 * define BOOST_REGEX_HAS_OTHER_WCHAR_T when wchar_t is a native type, but the users
|
Chris@16
|
162 * code may be built with wchar_t as unsigned short: basically when we're building
|
Chris@16
|
163 * with MSVC and the /Zc:wchar_t option we place some extra unsigned short versions
|
Chris@16
|
164 * of the non-inline functions in the library, so that users can still link to the lib,
|
Chris@16
|
165 * irrespective of whether their own code is built with /Zc:wchar_t.
|
Chris@16
|
166 * Note that this does NOT WORK with VC10 when the C++ locale is in effect as
|
Chris@16
|
167 * the locale's <unsigned short> facets simply do not compile in that case.
|
Chris@16
|
168 */
|
Chris@16
|
169 #if defined(__cplusplus) && (defined(BOOST_MSVC) || defined(__ICL)) && !defined(BOOST_NO_INTRINSIC_WCHAR_T) && defined(BOOST_WINDOWS) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) && !defined(BOOST_RWSTD_VER) && ((_MSC_VER < 1600) || !defined(BOOST_REGEX_USE_CPP_LOCALE))
|
Chris@16
|
170 # define BOOST_REGEX_HAS_OTHER_WCHAR_T
|
Chris@16
|
171 # ifdef BOOST_MSVC
|
Chris@16
|
172 # pragma warning(push)
|
Chris@16
|
173 # pragma warning(disable : 4251 4231)
|
Chris@16
|
174 # if BOOST_MSVC < 1600
|
Chris@16
|
175 # pragma warning(disable : 4660)
|
Chris@16
|
176 # endif
|
Chris@16
|
177 # endif
|
Chris@16
|
178 # if defined(_DLL) && defined(BOOST_MSVC) && (BOOST_MSVC < 1600)
|
Chris@16
|
179 # include <string>
|
Chris@16
|
180 extern template class __declspec(dllimport) std::basic_string<unsigned short>;
|
Chris@16
|
181 # endif
|
Chris@16
|
182 # ifdef BOOST_MSVC
|
Chris@16
|
183 # pragma warning(pop)
|
Chris@16
|
184 # endif
|
Chris@16
|
185 #endif
|
Chris@16
|
186
|
Chris@16
|
187
|
Chris@16
|
188 /*****************************************************************************
|
Chris@16
|
189 *
|
Chris@16
|
190 * Set up dll import/export options:
|
Chris@16
|
191 *
|
Chris@16
|
192 ****************************************************************************/
|
Chris@16
|
193
|
Chris@16
|
194 #ifndef BOOST_SYMBOL_EXPORT
|
Chris@16
|
195 # define BOOST_SYMBOL_EXPORT
|
Chris@16
|
196 # define BOOST_SYMBOL_IMPORT
|
Chris@16
|
197 #endif
|
Chris@16
|
198
|
Chris@16
|
199 #if (defined(BOOST_REGEX_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)) && !defined(BOOST_REGEX_STATIC_LINK)
|
Chris@16
|
200 # if defined(BOOST_REGEX_SOURCE)
|
Chris@16
|
201 # define BOOST_REGEX_DECL BOOST_SYMBOL_EXPORT
|
Chris@16
|
202 # define BOOST_REGEX_BUILD_DLL
|
Chris@16
|
203 # else
|
Chris@16
|
204 # define BOOST_REGEX_DECL BOOST_SYMBOL_IMPORT
|
Chris@16
|
205 # endif
|
Chris@16
|
206 #else
|
Chris@16
|
207 # define BOOST_REGEX_DECL
|
Chris@16
|
208 #endif
|
Chris@16
|
209
|
Chris@16
|
210 #if !defined(BOOST_REGEX_NO_LIB) && !defined(BOOST_REGEX_SOURCE) && !defined(BOOST_ALL_NO_LIB) && defined(__cplusplus)
|
Chris@16
|
211 # define BOOST_LIB_NAME boost_regex
|
Chris@16
|
212 # if defined(BOOST_REGEX_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)
|
Chris@16
|
213 # define BOOST_DYN_LINK
|
Chris@16
|
214 # endif
|
Chris@16
|
215 # ifdef BOOST_REGEX_DIAG
|
Chris@16
|
216 # define BOOST_LIB_DIAGNOSTIC
|
Chris@16
|
217 # endif
|
Chris@16
|
218 # include <boost/config/auto_link.hpp>
|
Chris@16
|
219 #endif
|
Chris@16
|
220
|
Chris@16
|
221 /*****************************************************************************
|
Chris@16
|
222 *
|
Chris@16
|
223 * Set up function call type:
|
Chris@16
|
224 *
|
Chris@16
|
225 ****************************************************************************/
|
Chris@16
|
226
|
Chris@101
|
227 #if defined(BOOST_MSVC) && defined(_MSC_EXTENSIONS)
|
Chris@16
|
228 #if defined(_DEBUG) || defined(__MSVC_RUNTIME_CHECKS) || defined(_MANAGED) || defined(BOOST_REGEX_NO_FASTCALL)
|
Chris@16
|
229 # define BOOST_REGEX_CALL __cdecl
|
Chris@16
|
230 #else
|
Chris@16
|
231 # define BOOST_REGEX_CALL __fastcall
|
Chris@16
|
232 #endif
|
Chris@16
|
233 # define BOOST_REGEX_CCALL __cdecl
|
Chris@16
|
234 #endif
|
Chris@16
|
235
|
Chris@16
|
236 #if defined(__BORLANDC__) && !defined(BOOST_DISABLE_WIN32)
|
Chris@16
|
237 # define BOOST_REGEX_CALL __fastcall
|
Chris@16
|
238 # define BOOST_REGEX_CCALL __stdcall
|
Chris@16
|
239 #endif
|
Chris@16
|
240
|
Chris@16
|
241 #ifndef BOOST_REGEX_CALL
|
Chris@16
|
242 # define BOOST_REGEX_CALL
|
Chris@16
|
243 #endif
|
Chris@16
|
244 #ifndef BOOST_REGEX_CCALL
|
Chris@16
|
245 #define BOOST_REGEX_CCALL
|
Chris@16
|
246 #endif
|
Chris@16
|
247
|
Chris@16
|
248 /*****************************************************************************
|
Chris@16
|
249 *
|
Chris@16
|
250 * Set up localisation model:
|
Chris@16
|
251 *
|
Chris@16
|
252 ****************************************************************************/
|
Chris@16
|
253
|
Chris@16
|
254 /* backwards compatibility: */
|
Chris@16
|
255 #ifdef BOOST_RE_LOCALE_C
|
Chris@16
|
256 # define BOOST_REGEX_USE_C_LOCALE
|
Chris@16
|
257 #endif
|
Chris@16
|
258
|
Chris@16
|
259 #ifdef BOOST_RE_LOCALE_CPP
|
Chris@16
|
260 # define BOOST_REGEX_USE_CPP_LOCALE
|
Chris@16
|
261 #endif
|
Chris@16
|
262
|
Chris@16
|
263 #if defined(__CYGWIN__)
|
Chris@16
|
264 # define BOOST_REGEX_USE_C_LOCALE
|
Chris@16
|
265 #endif
|
Chris@16
|
266
|
Chris@16
|
267 /* Win32 defaults to native Win32 locale: */
|
Chris@16
|
268 #if defined(_WIN32) && !defined(BOOST_REGEX_USE_WIN32_LOCALE) && !defined(BOOST_REGEX_USE_C_LOCALE) && !defined(BOOST_REGEX_USE_CPP_LOCALE) && !defined(BOOST_REGEX_NO_W32)
|
Chris@16
|
269 # define BOOST_REGEX_USE_WIN32_LOCALE
|
Chris@16
|
270 #endif
|
Chris@16
|
271 /* otherwise use C++ locale if supported: */
|
Chris@16
|
272 #if !defined(BOOST_REGEX_USE_WIN32_LOCALE) && !defined(BOOST_REGEX_USE_C_LOCALE) && !defined(BOOST_REGEX_USE_CPP_LOCALE) && !defined(BOOST_NO_STD_LOCALE)
|
Chris@16
|
273 # define BOOST_REGEX_USE_CPP_LOCALE
|
Chris@16
|
274 #endif
|
Chris@16
|
275 /* otherwise use C+ locale: */
|
Chris@16
|
276 #if !defined(BOOST_REGEX_USE_WIN32_LOCALE) && !defined(BOOST_REGEX_USE_C_LOCALE) && !defined(BOOST_REGEX_USE_CPP_LOCALE)
|
Chris@16
|
277 # define BOOST_REGEX_USE_C_LOCALE
|
Chris@16
|
278 #endif
|
Chris@16
|
279
|
Chris@16
|
280 #ifndef BOOST_REGEX_MAX_STATE_COUNT
|
Chris@16
|
281 # define BOOST_REGEX_MAX_STATE_COUNT 100000000
|
Chris@16
|
282 #endif
|
Chris@16
|
283
|
Chris@16
|
284
|
Chris@16
|
285 /*****************************************************************************
|
Chris@16
|
286 *
|
Chris@16
|
287 * Error Handling for exception free compilers:
|
Chris@16
|
288 *
|
Chris@16
|
289 ****************************************************************************/
|
Chris@16
|
290
|
Chris@16
|
291 #ifdef BOOST_NO_EXCEPTIONS
|
Chris@16
|
292 /*
|
Chris@16
|
293 * If there are no exceptions then we must report critical-errors
|
Chris@16
|
294 * the only way we know how; by terminating.
|
Chris@16
|
295 */
|
Chris@16
|
296 #include <stdexcept>
|
Chris@16
|
297 #include <string>
|
Chris@16
|
298 #include <boost/throw_exception.hpp>
|
Chris@16
|
299
|
Chris@16
|
300 # define BOOST_REGEX_NOEH_ASSERT(x)\
|
Chris@16
|
301 if(0 == (x))\
|
Chris@16
|
302 {\
|
Chris@16
|
303 std::string s("Error: critical regex++ failure in: ");\
|
Chris@16
|
304 s.append(#x);\
|
Chris@16
|
305 std::runtime_error e(s);\
|
Chris@16
|
306 boost::throw_exception(e);\
|
Chris@16
|
307 }
|
Chris@16
|
308 #else
|
Chris@16
|
309 /*
|
Chris@16
|
310 * With exceptions then error handling is taken care of and
|
Chris@16
|
311 * there is no need for these checks:
|
Chris@16
|
312 */
|
Chris@16
|
313 # define BOOST_REGEX_NOEH_ASSERT(x)
|
Chris@16
|
314 #endif
|
Chris@16
|
315
|
Chris@16
|
316
|
Chris@16
|
317 /*****************************************************************************
|
Chris@16
|
318 *
|
Chris@16
|
319 * Stack protection under MS Windows:
|
Chris@16
|
320 *
|
Chris@16
|
321 ****************************************************************************/
|
Chris@16
|
322
|
Chris@16
|
323 #if !defined(BOOST_REGEX_NO_W32) && !defined(BOOST_REGEX_V3)
|
Chris@16
|
324 # if(defined(_WIN32) || defined(_WIN64) || defined(_WINCE)) \
|
Chris@16
|
325 && !defined(__GNUC__) \
|
Chris@16
|
326 && !(defined(__BORLANDC__) && (__BORLANDC__ >= 0x600)) \
|
Chris@16
|
327 && !(defined(__MWERKS__) && (__MWERKS__ <= 0x3003))
|
Chris@16
|
328 # define BOOST_REGEX_HAS_MS_STACK_GUARD
|
Chris@16
|
329 # endif
|
Chris@16
|
330 #elif defined(BOOST_REGEX_HAS_MS_STACK_GUARD)
|
Chris@16
|
331 # undef BOOST_REGEX_HAS_MS_STACK_GUARD
|
Chris@16
|
332 #endif
|
Chris@16
|
333
|
Chris@16
|
334 #if defined(__cplusplus) && defined(BOOST_REGEX_HAS_MS_STACK_GUARD)
|
Chris@16
|
335
|
Chris@16
|
336 namespace boost{
|
Chris@16
|
337 namespace re_detail{
|
Chris@16
|
338
|
Chris@16
|
339 BOOST_REGEX_DECL void BOOST_REGEX_CALL reset_stack_guard_page();
|
Chris@16
|
340
|
Chris@16
|
341 }
|
Chris@16
|
342 }
|
Chris@16
|
343
|
Chris@16
|
344 #endif
|
Chris@16
|
345
|
Chris@16
|
346
|
Chris@16
|
347 /*****************************************************************************
|
Chris@16
|
348 *
|
Chris@16
|
349 * Algorithm selection and configuration:
|
Chris@16
|
350 *
|
Chris@16
|
351 ****************************************************************************/
|
Chris@16
|
352
|
Chris@16
|
353 #if !defined(BOOST_REGEX_RECURSIVE) && !defined(BOOST_REGEX_NON_RECURSIVE)
|
Chris@16
|
354 # if defined(BOOST_REGEX_HAS_MS_STACK_GUARD) && !defined(_STLP_DEBUG) && !defined(__STL_DEBUG) && !(defined(BOOST_MSVC) && (BOOST_MSVC >= 1400))
|
Chris@16
|
355 # define BOOST_REGEX_RECURSIVE
|
Chris@16
|
356 # else
|
Chris@16
|
357 # define BOOST_REGEX_NON_RECURSIVE
|
Chris@16
|
358 # endif
|
Chris@16
|
359 #endif
|
Chris@16
|
360
|
Chris@16
|
361 #ifdef BOOST_REGEX_NON_RECURSIVE
|
Chris@16
|
362 # ifdef BOOST_REGEX_RECURSIVE
|
Chris@16
|
363 # error "Can't set both BOOST_REGEX_RECURSIVE and BOOST_REGEX_NON_RECURSIVE"
|
Chris@16
|
364 # endif
|
Chris@16
|
365 # ifndef BOOST_REGEX_BLOCKSIZE
|
Chris@16
|
366 # define BOOST_REGEX_BLOCKSIZE 4096
|
Chris@16
|
367 # endif
|
Chris@16
|
368 # if BOOST_REGEX_BLOCKSIZE < 512
|
Chris@16
|
369 # error "BOOST_REGEX_BLOCKSIZE must be at least 512"
|
Chris@16
|
370 # endif
|
Chris@16
|
371 # ifndef BOOST_REGEX_MAX_BLOCKS
|
Chris@16
|
372 # define BOOST_REGEX_MAX_BLOCKS 1024
|
Chris@16
|
373 # endif
|
Chris@16
|
374 # ifdef BOOST_REGEX_HAS_MS_STACK_GUARD
|
Chris@16
|
375 # undef BOOST_REGEX_HAS_MS_STACK_GUARD
|
Chris@16
|
376 # endif
|
Chris@16
|
377 # ifndef BOOST_REGEX_MAX_CACHE_BLOCKS
|
Chris@16
|
378 # define BOOST_REGEX_MAX_CACHE_BLOCKS 16
|
Chris@16
|
379 # endif
|
Chris@16
|
380 #endif
|
Chris@16
|
381
|
Chris@16
|
382
|
Chris@16
|
383 /*****************************************************************************
|
Chris@16
|
384 *
|
Chris@16
|
385 * helper memory allocation functions:
|
Chris@16
|
386 *
|
Chris@16
|
387 ****************************************************************************/
|
Chris@16
|
388
|
Chris@16
|
389 #if defined(__cplusplus) && defined(BOOST_REGEX_NON_RECURSIVE)
|
Chris@16
|
390 namespace boost{ namespace re_detail{
|
Chris@16
|
391
|
Chris@16
|
392 BOOST_REGEX_DECL void* BOOST_REGEX_CALL get_mem_block();
|
Chris@16
|
393 BOOST_REGEX_DECL void BOOST_REGEX_CALL put_mem_block(void*);
|
Chris@16
|
394
|
Chris@16
|
395 }} /* namespaces */
|
Chris@16
|
396 #endif
|
Chris@16
|
397
|
Chris@16
|
398 /*****************************************************************************
|
Chris@16
|
399 *
|
Chris@16
|
400 * Diagnostics:
|
Chris@16
|
401 *
|
Chris@16
|
402 ****************************************************************************/
|
Chris@16
|
403
|
Chris@16
|
404 #ifdef BOOST_REGEX_CONFIG_INFO
|
Chris@16
|
405 BOOST_REGEX_DECL void BOOST_REGEX_CALL print_regex_library_info();
|
Chris@16
|
406 #endif
|
Chris@16
|
407
|
Chris@16
|
408 #if defined(BOOST_REGEX_DIAG)
|
Chris@16
|
409 # pragma message ("BOOST_REGEX_DECL" BOOST_STRINGIZE(=BOOST_REGEX_DECL))
|
Chris@16
|
410 # pragma message ("BOOST_REGEX_CALL" BOOST_STRINGIZE(=BOOST_REGEX_CALL))
|
Chris@16
|
411 # pragma message ("BOOST_REGEX_CCALL" BOOST_STRINGIZE(=BOOST_REGEX_CCALL))
|
Chris@16
|
412 #ifdef BOOST_REGEX_USE_C_LOCALE
|
Chris@16
|
413 # pragma message ("Using C locale in regex traits class")
|
Chris@16
|
414 #elif BOOST_REGEX_USE_CPP_LOCALE
|
Chris@16
|
415 # pragma message ("Using C++ locale in regex traits class")
|
Chris@16
|
416 #else
|
Chris@16
|
417 # pragma message ("Using Win32 locale in regex traits class")
|
Chris@16
|
418 #endif
|
Chris@16
|
419 #if defined(BOOST_REGEX_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)
|
Chris@16
|
420 # pragma message ("Dynamic linking enabled")
|
Chris@16
|
421 #endif
|
Chris@16
|
422 #if defined(BOOST_REGEX_NO_LIB) || defined(BOOST_ALL_NO_LIB)
|
Chris@16
|
423 # pragma message ("Auto-linking disabled")
|
Chris@16
|
424 #endif
|
Chris@16
|
425 #ifdef BOOST_REGEX_NO_EXTERNAL_TEMPLATES
|
Chris@16
|
426 # pragma message ("Extern templates disabled")
|
Chris@16
|
427 #endif
|
Chris@16
|
428
|
Chris@16
|
429 #endif
|
Chris@16
|
430
|
Chris@16
|
431 #endif
|
Chris@16
|
432
|
Chris@16
|
433
|
Chris@16
|
434
|
Chris@16
|
435
|