STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
yvals.h
Go to the documentation of this file.
1 /* yvals.h values header for Microsoft C/C++ */
2 #pragma once
3 #ifndef _YVALS
4 #define _YVALS
5 #ifndef RC_INVOKED
6 
7 #include <xkeycheck.h>
8 #include <crtdefs.h>
9 
10 #pragma pack(push,_CRT_PACKING)
11 #pragma push_macro("new")
12 #undef new
13 
14 #define _CPPLIB_VER 610
15 #define _HAS_DECLTYPE 1
16 #define _HAS_INITIALIZER_LISTS 1
17 #define _HAS_REF_QUALIFIER 0
18 #define _HAS_RVALUE_REFERENCES 1
19 #define _HAS_SCOPED_ENUM 1
20 #define _HAS_TEMPLATE_ALIAS 1
21 #define _HAS_VARIADIC_TEMPLATES 1
22 
23 #define _HAS_CPP0X 1
24 
25 #define _NOEXCEPT throw ()
26 #define _NOEXCEPT_OP(x)
27 
28 /* Note on use of "deprecate":
29  * Various places in this header and other headers use __declspec(deprecate) or macros that have the term DEPRECATE in them.
30  * We use deprecate here ONLY to signal the compiler to emit a warning about these items. The use of deprecate
31  * should NOT be taken to imply that any standard committee has deprecated these functions from the relevant standards.
32  * In fact, these functions are NOT deprecated from the standard.
33  *
34  * Full details can be found in our documentation by searching for "Checked Iterators".
35 */
36 
37 #if defined(MRTDLL) && defined(_CRTBLD)
38 /*
39 process-global is the default for code built with /clr or /clr:oldSyntax.
40 appdomain-global is the default for code built with /clr:pure.
41 Code in MSVCM is built with /clr, but is used by user code built with /clr:pure
42 so it must conform to the expectations of /clr:pure clients.
43 Use __PURE_APPDOMAIN_GLOBAL when a global needs to be appdomain-global for pure
44 clients and process-global for mixed clients.
45 */
46 #define __PURE_APPDOMAIN_GLOBAL __declspec(appdomain)
47 #else
48 #define __PURE_APPDOMAIN_GLOBAL
49 #endif
50 
51 #ifndef __CRTDECL
52 #if defined(_M_CEE_PURE) || defined(MRTDLL)
53 #define __CRTDECL __clrcall
54 #else
55 #define __CRTDECL __cdecl
56 #endif
57 #endif
58 
59 #ifndef __CLR_OR_THIS_CALL
60 #if defined(MRTDLL) || defined(_M_CEE_PURE)
61 #define __CLR_OR_THIS_CALL __clrcall
62 #else
63 #define __CLR_OR_THIS_CALL
64 #endif
65 #endif
66 
67 #ifndef __CLRCALL_OR_CDECL
68 #if defined(MRTDLL) || defined(_M_CEE_PURE)
69 #define __CLRCALL_OR_CDECL __clrcall
70 #else
71 #define __CLRCALL_OR_CDECL __cdecl
72 #endif
73 #endif
74 
75 #ifndef __CLRCALL_PURE_OR_CDECL
76 #if defined(_M_CEE_PURE)
77 #define __CLRCALL_PURE_OR_CDECL __clrcall
78 #else
79 #define __CLRCALL_PURE_OR_CDECL __cdecl
80 #endif
81 #endif
82 
83  /* CURRENT DLL NAMES */
84 #ifndef _CRT_MSVCP_CURRENT
85 #ifdef _DEBUG
86 #define _CRT_MSVCP_CURRENT "MSVCP120D.dll"
87 #else
88 #define _CRT_MSVCP_CURRENT "MSVCP120.dll"
89 #endif
90 #endif
91 
92  /* NAMING PROPERTIES */
93 #define _WIN32_C_LIB 1
94 
95  /* THREAD AND LOCALE CONTROL */
96 #define _MULTI_THREAD 1 /* nontrivial locks if multithreaded */
97 #define _IOSTREAM_OP_LOCKS 1 /* lock iostream operations */
98 #define _GLOBAL_LOCALE 0 /* 0 for per-thread locales, 1 for shared */
99 
100  /* THREAD-LOCAL STORAGE */
101 #define _COMPILER_TLS 1 /* 1 if compiler supports TLS directly */
102  #if _MULTI_THREAD
103  #define _TLS_QUAL __declspec(thread) /* TLS qualifier, if any */
104 
105  #else /* _MULTI_THREAD */
106  #define _TLS_QUAL
107  #endif /* _MULTI_THREAD */
108 
109  #ifndef _HAS_EXCEPTIONS
110  #define _HAS_EXCEPTIONS 1 /* predefine as 0 to disable exceptions */
111  #endif /* _HAS_EXCEPTIONS */
112 
113 #define _GLOBAL_USING 1
114 
115  #ifndef _NO_LOCALES
116  #define _NO_LOCALES 0
117  #endif /* _NO_LOCALES */
118 
119 #ifdef _ITERATOR_DEBUG_LEVEL /* A. _ITERATOR_DEBUG_LEVEL is already defined. */
120 
121  /* A1. Validate _ITERATOR_DEBUG_LEVEL. */
122  #if _ITERATOR_DEBUG_LEVEL > 2 && defined(_DEBUG)
123  #error _ITERATOR_DEBUG_LEVEL > 2 is not supported in debug mode.
124  #elif _ITERATOR_DEBUG_LEVEL > 1 && !defined(_DEBUG)
125  #error _ITERATOR_DEBUG_LEVEL > 1 is not supported in release mode.
126  #endif
127 
128  /* A2. Inspect _HAS_ITERATOR_DEBUGGING. */
129  #ifdef _HAS_ITERATOR_DEBUGGING /* A2i. _HAS_ITERATOR_DEBUGGING is already defined, validate it. */
130  #if _ITERATOR_DEBUG_LEVEL == 2 && _HAS_ITERATOR_DEBUGGING != 1
131  #error _ITERATOR_DEBUG_LEVEL == 2 must imply _HAS_ITERATOR_DEBUGGING == 1 .
132  #elif _ITERATOR_DEBUG_LEVEL < 2 && _HAS_ITERATOR_DEBUGGING != 0
133  #error _ITERATOR_DEBUG_LEVEL < 2 must imply _HAS_ITERATOR_DEBUGGING == 0 .
134  #endif
135  #else /* A2ii. _HAS_ITERATOR_DEBUGGING is not yet defined, derive it. */
136  #if _ITERATOR_DEBUG_LEVEL == 2
137  #define _HAS_ITERATOR_DEBUGGING 1
138  #else
139  #define _HAS_ITERATOR_DEBUGGING 0
140  #endif
141  #endif /* _HAS_ITERATOR_DEBUGGING */
142 
143  /* A3. Inspect _SECURE_SCL. */
144  #ifdef _SECURE_SCL /* A3i. _SECURE_SCL is already defined, validate it. */
145  #if _ITERATOR_DEBUG_LEVEL > 0 && _SECURE_SCL != 1
146  #error _ITERATOR_DEBUG_LEVEL > 0 must imply _SECURE_SCL == 1 .
147  #elif _ITERATOR_DEBUG_LEVEL == 0 && _SECURE_SCL != 0
148  #error _ITERATOR_DEBUG_LEVEL == 0 must imply _SECURE_SCL == 0 .
149  #endif
150  #else /* A3ii. _SECURE_SCL is not yet defined, derive it. */
151  #if _ITERATOR_DEBUG_LEVEL > 0
152  #define _SECURE_SCL 1
153  #else
154  #define _SECURE_SCL 0
155  #endif
156  #endif /* _SECURE_SCL */
157 
158 #else /* B. _ITERATOR_DEBUG_LEVEL is not yet defined. */
159 
160  /* B1. Inspect _HAS_ITERATOR_DEBUGGING. */
161  #ifdef _HAS_ITERATOR_DEBUGGING /* B1i. _HAS_ITERATOR_DEBUGGING is already defined, validate it. */
162  #if _HAS_ITERATOR_DEBUGGING > 1
163  #error _HAS_ITERATOR_DEBUGGING must be either 0 or 1 .
164  #elif _HAS_ITERATOR_DEBUGGING == 1 && !defined(_DEBUG)
165  #error _HAS_ITERATOR_DEBUGGING == 1 is not supported in release mode.
166  #endif
167  #else /* B1ii. _HAS_ITERATOR_DEBUGGING is not yet defined, default it. */
168  #ifdef _DEBUG
169  #define _HAS_ITERATOR_DEBUGGING 1
170  #else
171  #define _HAS_ITERATOR_DEBUGGING 0
172  #endif
173  #endif /* _HAS_ITERATOR_DEBUGGING */
174 
175  /* B2. Inspect _SECURE_SCL. */
176  #ifdef _SECURE_SCL /* B2i. _SECURE_SCL is already defined, validate it. */
177  #if _SECURE_SCL > 1
178  #error _SECURE_SCL must be either 0 or 1 .
179  #endif
180  #else /* B2ii. _SECURE_SCL is not yet defined, default it. */
181  #if _HAS_ITERATOR_DEBUGGING == 1
182  #define _SECURE_SCL 1
183  #else
184  #define _SECURE_SCL 0
185  #endif
186  #endif /* _SECURE_SCL */
187 
188  /* B3. Derive _ITERATOR_DEBUG_LEVEL. */
189  #if _HAS_ITERATOR_DEBUGGING
190  #define _ITERATOR_DEBUG_LEVEL 2
191  #elif _SECURE_SCL
192  #define _ITERATOR_DEBUG_LEVEL 1
193  #else
194  #define _ITERATOR_DEBUG_LEVEL 0
195  #endif
196 
197 #endif /* _ITERATOR_DEBUG_LEVEL */
198 
199 #define _STRINGIZEX(x) #x
200 #define _STRINGIZE(x) _STRINGIZEX(x)
201 
202 #ifndef __EDG__ /* TRANSITION */
203 #ifdef __cplusplus
204  #ifndef _ALLOW_MSC_VER_MISMATCH
205  #pragma detect_mismatch("_MSC_VER", "1800")
206  #endif /* _ALLOW_MSC_VER_MISMATCH */
207 
208  #ifndef _ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH
209  #pragma detect_mismatch("_ITERATOR_DEBUG_LEVEL", _STRINGIZE(_ITERATOR_DEBUG_LEVEL))
210  #endif /* _ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH */
211 
212  #ifndef _ALLOW_RUNTIME_LIBRARY_MISMATCH
213  #if !defined(_DLL) && !defined(_DEBUG)
214  #pragma detect_mismatch("RuntimeLibrary", "MT_StaticRelease")
215  #elif !defined(_DLL) && defined(_DEBUG)
216  #pragma detect_mismatch("RuntimeLibrary", "MTd_StaticDebug")
217  #elif defined(_DLL) && !defined(_DEBUG)
218  #pragma detect_mismatch("RuntimeLibrary", "MD_DynamicRelease")
219  #elif defined(_DLL) && defined(_DEBUG)
220  #pragma detect_mismatch("RuntimeLibrary", "MDd_DynamicDebug")
221  #endif /* defined(_DLL) etc. */
222  #endif /* _ALLOW_RUNTIME_LIBRARY_MISMATCH */
223 #endif /* __cplusplus */
224 #endif /* __EDG__ */
225 
226 #ifdef _ITERATOR_DEBUG_ARRAY_OVERLOADS
227  #if _ITERATOR_DEBUG_ARRAY_OVERLOADS != 0 && _ITERATOR_DEBUG_ARRAY_OVERLOADS != 1
228  #error _ITERATOR_DEBUG_ARRAY_OVERLOADS must be either 0 or 1 .
229  #elif _ITERATOR_DEBUG_LEVEL == 0 && _ITERATOR_DEBUG_ARRAY_OVERLOADS == 1
230  #error _ITERATOR_DEBUG_LEVEL == 0 must imply _ITERATOR_DEBUG_ARRAY_OVERLOADS == 0 .
231  #endif
232 #else /* _ITERATOR_DEBUG_ARRAY_OVERLOADS */
233  #if _ITERATOR_DEBUG_LEVEL == 0
234  #define _ITERATOR_DEBUG_ARRAY_OVERLOADS 0
235  #else
236  #define _ITERATOR_DEBUG_ARRAY_OVERLOADS 1
237  #endif
238 #endif /* _ITERATOR_DEBUG_ARRAY_OVERLOADS */
239 
240 /* See note on use of deprecate at the top of this file */
241 #if !defined(_SCL_SECURE_NO_WARNINGS) && defined(_SCL_SECURE_NO_DEPRECATE)
242 #define _SCL_SECURE_NO_WARNINGS
243 #endif
244 
245 #if !defined (_SECURE_SCL_DEPRECATE)
246 #if defined(_SCL_SECURE_NO_WARNINGS)
247 #define _SECURE_SCL_DEPRECATE 0
248 #else
249 #define _SECURE_SCL_DEPRECATE 1
250 #endif
251 #endif
252 
253 #if defined(_SECURE_SCL_THROWS) && _SECURE_SCL_THROWS
254 #error _SECURE_SCL_THROWS has been removed.
255 #endif
256 
257 /* _SECURE_SCL switches: helper macros */
258 /* See note on use of deprecate at the top of this file */
259 
260 #if _ITERATOR_DEBUG_LEVEL > 0 && _SECURE_SCL_DEPRECATE
261 #define _SCL_INSECURE_DEPRECATE \
262  _CRT_DEPRECATE_TEXT( \
263  "Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. " \
264  "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'")
265 #else
266 #define _SCL_INSECURE_DEPRECATE
267 #endif
268 
269 #ifndef _SCL_SECURE_INVALID_PARAMETER
270  #define _SCL_SECURE_INVALID_PARAMETER(expr) _CRT_SECURE_INVALID_PARAMETER(expr)
271 #endif
272 
273  #define _SCL_SECURE_INVALID_ARGUMENT_NO_ASSERT _SCL_SECURE_INVALID_PARAMETER("invalid argument")
274  #define _SCL_SECURE_OUT_OF_RANGE_NO_ASSERT _SCL_SECURE_INVALID_PARAMETER("out of range")
275 
276  #define _SCL_SECURE_ALWAYS_VALIDATE(cond) \
277  { \
278  if (!(cond)) \
279  { \
280  _ASSERTE(#cond && 0); \
281  _SCL_SECURE_INVALID_ARGUMENT_NO_ASSERT; \
282  } \
283  _Analysis_assume_(cond); \
284  }
285 
286  #define _SCL_SECURE_ALWAYS_VALIDATE_RANGE(cond) \
287  { \
288  if (!(cond)) \
289  { \
290  _ASSERTE(#cond && 0); \
291  _SCL_SECURE_OUT_OF_RANGE_NO_ASSERT; \
292  } \
293  _Analysis_assume_(cond); \
294  }
295 
296  #define _SCL_SECURE_CRT_VALIDATE(cond, retvalue) \
297  { \
298  if (!(cond)) \
299  { \
300  _ASSERTE(#cond && 0); \
301  _SCL_SECURE_INVALID_PARAMETER(cond); \
302  return (retvalue); \
303  } \
304  }
305 
306  #if _ITERATOR_DEBUG_LEVEL > 0
307 
308  #define _SCL_SECURE_VALIDATE(cond) \
309  { \
310  if (!(cond)) \
311  { \
312  _ASSERTE(#cond && 0); \
313  _SCL_SECURE_INVALID_ARGUMENT_NO_ASSERT; \
314  } \
315  _Analysis_assume_(cond); \
316  }
317 
318  #define _SCL_SECURE_VALIDATE_RANGE(cond) \
319  { \
320  if (!(cond)) \
321  { \
322  _ASSERTE(#cond && 0); \
323  _SCL_SECURE_OUT_OF_RANGE_NO_ASSERT; \
324  } \
325  _Analysis_assume_(cond); \
326  }
327 
328  #define _SCL_SECURE_INVALID_ARGUMENT \
329  { \
330  _ASSERTE("Standard C++ Libraries Invalid Argument" && 0); \
331  _SCL_SECURE_INVALID_ARGUMENT_NO_ASSERT; \
332  }
333  #define _SCL_SECURE_OUT_OF_RANGE \
334  { \
335  _ASSERTE("Standard C++ Libraries Out of Range" && 0); \
336  _SCL_SECURE_OUT_OF_RANGE_NO_ASSERT; \
337  }
338 
339  #else /* _ITERATOR_DEBUG_LEVEL > 0 */
340 
341 /* when users disable _SECURE_SCL to get performance, we don't want analysis warnings from SCL headers */
342 #if _ITERATOR_DEBUG_LEVEL == 2
343  #define _SCL_SECURE_VALIDATE(cond) _Analysis_assume_(cond)
344  #define _SCL_SECURE_VALIDATE_RANGE(cond) _Analysis_assume_(cond)
345 #else
346  #define _SCL_SECURE_VALIDATE(cond)
347  #define _SCL_SECURE_VALIDATE_RANGE(cond)
348 #endif
349 
350  #define _SCL_SECURE_INVALID_ARGUMENT
351  #define _SCL_SECURE_OUT_OF_RANGE
352 
353  #endif /* _ITERATOR_DEBUG_LEVEL > 0 */
354 
355 #if __STDC_WANT_SECURE_LIB__
356 #define _CRT_SECURE_MEMCPY(dest, destsize, source, count) ::memcpy_s((dest), (destsize), (source), (count))
357 #define _CRT_SECURE_MEMMOVE(dest, destsize, source, count) ::memmove_s((dest), (destsize), (source), (count))
358 #define _CRT_SECURE_WMEMCPY(dest, destsize, source, count) ::wmemcpy_s((dest), (destsize), (source), (count))
359 #define _CRT_SECURE_WMEMMOVE(dest, destsize, source, count) ::wmemmove_s((dest), (destsize), (source), (count))
360 #else
361 #define _CRT_SECURE_MEMCPY(dest, destsize, source, count) ::memcpy((dest), (source), (count))
362 #define _CRT_SECURE_MEMMOVE(dest, destsize, source, count) ::memmove((dest), (source), (count))
363 #define _CRT_SECURE_WMEMCPY(dest, destsize, source, count) ::wmemcpy((dest), (source), (count))
364 #define _CRT_SECURE_WMEMMOVE(dest, destsize, source, count) ::wmemmove((dest), (source), (count))
365 #endif
366 
367 #include <use_ansi.h>
368 
369 #if defined(_M_CEE) && defined(_STATIC_CPPLIB)
370 #error _STATIC_CPPLIB is not supported while building with /clr or /clr:pure
371 #endif
372 
373 #if defined(_DLL) && defined(_STATIC_CPPLIB) && !defined(_DISABLE_DEPRECATE_STATIC_CPPLIB)
374 #include <crtwrn.h>
375 #pragma push_macro("_STATIC_CPPLIB")
376 #undef _STATIC_CPPLIB
377 #pragma _CRT_WARNING( _DEPRECATE_STATIC_CPPLIB )
378 #pragma pop_macro("_STATIC_CPPLIB")
379 #endif
380 
381 /* Define _CRTIMP2 */
382  #ifndef _CRTIMP2
383  #if defined(CRTDLL2) && defined(_CRTBLD)
384  #define _CRTIMP2 __declspec(dllexport)
385  #else /* ndef CRTDLL2 && _CRTBLD */
386 
387  #if defined(_DLL) && !defined(_STATIC_CPPLIB)
388  #define _CRTIMP2 __declspec(dllimport)
389 
390  #else /* ndef _DLL && !STATIC_CPPLIB */
391  #define _CRTIMP2
392  #endif /* _DLL && !STATIC_CPPLIB */
393 
394  #endif /* CRTDLL2 && _CRTBLD */
395  #endif /* _CRTIMP2 */
396 
397 /* Define _CRTIMP2_NCEEPURE */
398  #ifndef _CRTIMP2_NCEEPURE
399  #if defined(_M_CEE_PURE)
400  #define _CRTIMP2_NCEEPURE
401  #else
402  #define _CRTIMP2_NCEEPURE _CRTIMP2
403  #endif
404  #endif
405 
406  #ifndef _MRTIMP
407  #if defined(MRTDLL) && defined(_CRTBLD)
408  #if !defined(_M_CEE_PURE)
409  #define _MRTIMP __declspec(dllexport)
410  #else
411  #define _MRTIMP
412  #endif
413  #else /* ndef MRTDLL && _CRTBLD */
414  #define _MRTIMP __declspec(dllimport)
415  #endif /* MRTDLL && _CRTBLD */
416  #endif /* _MRTIMP */
417 
418 /* Define _MRTIMP2 */
419  #ifndef _MRTIMP2
420  #if defined(CRTDLL2) && defined(_CRTBLD)
421  #define _MRTIMP2 __declspec(dllexport)
422  #elif defined(MRTDLL) && defined(_CRTBLD)
423  #define _MRTIMP2 _MRTIMP
424  #else /* ndef CRTDLL2 && _CRTBLD */
425 
426  #if defined(_DLL) && !defined(_STATIC_CPPLIB)
427  #define _MRTIMP2 __declspec(dllimport)
428 
429  #else /* ndef _DLL && !STATIC_CPPLIB */
430  #define _MRTIMP2
431  #endif /* _DLL && !STATIC_CPPLIB */
432 
433  #endif /* CRTDLL2 && _CRTBLD */
434  #endif /* _MRTIMP2 */
435 
436  #ifndef _MRTIMP2_PURE
437  #if defined(_M_CEE_PURE)
438  #define _MRTIMP2_PURE
439  #else
440  #define _MRTIMP2_PURE _MRTIMP2
441  #endif
442  #endif
443 
444  #ifndef _MRTIMP2_PURE_NPURE
445  #if defined(_M_CEE_PURE)
446  #define _MRTIMP2_PURE_NPURE
447  #else
448  #define _MRTIMP2_PURE_NPURE _MRTIMP2_NPURE
449  #endif
450  #endif
451 
452 /* Define _MRTIMP2_NPURE */
453  #ifndef _MRTIMP2_NPURE
454  #if defined(MRTDLL) && defined(_CRTBLD)
455  #if !defined(_M_CEE_PURE)
456  #define _MRTIMP2_NPURE __declspec(dllexport)
457  #else
458  #define _MRTIMP2_NPURE
459  #endif
460  #else /* ndef MRTDLL && _CRTBLD */
461 
462  #if defined(_DLL) && defined(_M_CEE_PURE)
463  #define _MRTIMP2_NPURE __declspec(dllimport)
464 
465  #else
466  #define _MRTIMP2_NPURE
467  #endif
468 
469  #endif /* MRTDLL && _CRTBLD */
470  #endif /* _MRTIMP2_NPURE */
471 
472  #if defined(_DLL) && !defined(_STATIC_CPPLIB) && !defined(_M_CEE_PURE)
473  #define _DLL_CPPLIB
474  #endif
475 
476  #ifndef _CRTIMP2_PURE
477  #if defined(MRTDLL) && defined(_CRTBLD)
478  #define _CRTIMP2_PURE
479  #else
480  #ifdef _M_CEE_PURE
481  #define _CRTIMP2_PURE
482  #else
483  #define _CRTIMP2_PURE _CRTIMP2
484  #endif
485  #endif
486  #endif
487 
488  #ifdef _CRTBLD
489  #if !defined(_CRTDATA2)
490  #if !defined(MRTDLL)
491  #define _CRTDATA2 _CRTIMP2
492  #else
493  #define _CRTDATA2
494  #endif
495  #endif
496 
497 /* Define _CRTBLD_NATIVE_WCHAR_T */
498 
499  #if defined(__cplusplus)
500  #ifndef _NATIVE_WCHAR_T_DEFINED
501  #error Native wchar_t must be defined
502 
503  #else /* _NATIVE_WCHAR_T_DEFINED */
504  #define _CRTBLD_NATIVE_WCHAR_T
505  #endif /* _NATIVE_WCHAR_T_DEFINED */
506 
507  #endif /* defined(__cplusplus) */
508 
509 /* These functions are for enabling STATIC_CPPLIB functionality */
510  #define _cpp_stdin (&(__iob_func())[0])
511  #define _cpp_stdout (&(__iob_func())[1])
512  #define _cpp_stderr (&(__iob_func())[2])
513  #define _cpp_isleadbyte(c) (__pctype_func()[(unsigned char)(c)] & _LEADBYTE)
514  #else /* _CRTBLD */
515  #if !defined(_CRTDATA2)
516  #define _CRTDATA2 _CRTIMP2
517  #endif
518  #endif /* _CRTBLD */
519 
520  /* NAMESPACE */
521 
522  #if defined(__cplusplus)
523  #define _STD_BEGIN namespace std {
524  #define _STD_END }
525  #define _STD ::std::
526 
527 /*
528 We use the stdext (standard extension) namespace to contain extensions that are not part of the current standard
529 */
530  #define _STDEXT_BEGIN namespace stdext {
531  #define _STDEXT_END }
532  #define _STDEXT ::stdext::
533 
534  #ifdef _STD_USING
535  #define _C_STD_BEGIN namespace std { /* only if *.c compiled as C++ */
536  #define _C_STD_END }
537  #define _CSTD ::std::
538 
539  #else /* _STD_USING */
540 /* #define _GLOBAL_USING *.h in global namespace, c* imports to std */
541 
542  #define _C_STD_BEGIN
543  #define _C_STD_END
544  #define _CSTD ::
545  #endif /* _STD_USING */
546 
547  #define _C_LIB_DECL extern "C" { /* C has extern "C" linkage */
548  #define _END_C_LIB_DECL }
549  #define _EXTERN_C extern "C" {
550  #define _END_EXTERN_C }
551 
552  #else /* __cplusplus */
553  #define _STD_BEGIN
554  #define _STD_END
555  #define _STD
556 
557  #define _C_STD_BEGIN
558  #define _C_STD_END
559  #define _CSTD
560 
561  #define _C_LIB_DECL
562  #define _END_C_LIB_DECL
563  #define _EXTERN_C
564  #define _END_EXTERN_C
565  #endif /* __cplusplus */
566 
567  #ifdef __cplusplus
569 typedef bool _Bool;
570 _STD_END
571  #endif /* __cplusplus */
572 
573  /* VC++ COMPILER PARAMETERS */
574 #define _LONGLONG __int64
575 #define _ULONGLONG unsigned __int64
576 #define _LLONG_MAX 0x7fffffffffffffff
577 #define _ULLONG_MAX 0xffffffffffffffff
578 
579  /* INTEGER PROPERTIES */
580 #define _C2 1 /* 0 if not 2's complement */
581 
582 #define _MAX_EXP_DIG 8 /* for parsing numerics */
583 #define _MAX_INT_DIG 32
584 #define _MAX_SIG_DIG 36
585 
588 
589  /* STDIO PROPERTIES */
590 #define _Filet _iobuf
591 
592 #define _IOBASE _base
593 #define _IOPTR _ptr
594 #define _IOCNT _cnt
595 
596 #ifndef _HAS_CHAR16_T_LANGUAGE_SUPPORT
597  #define _HAS_CHAR16_T_LANGUAGE_SUPPORT 0
598 #endif /* _HAS_CHAR16_T_LANGUAGE_SUPPORT */
599 
600  /* uchar PROPERTIES */
601  #if _HAS_CHAR16_T_LANGUAGE_SUPPORT
602  #else /* _HAS_CHAR16_T_LANGUAGE_SUPPORT */
603  #if !defined(_CHAR16T)
604  #define _CHAR16T
605 typedef unsigned short char16_t;
606 typedef unsigned int char32_t;
607  #endif /* !defined(_CHAR16T) */
608  #endif /* _HAS_CHAR16_T_LANGUAGE_SUPPORT */
609 
610  /* MULTITHREAD PROPERTIES */
611  /* LOCK MACROS */
612 #define _LOCK_LOCALE 0
613 #define _LOCK_MALLOC 1
614 #define _LOCK_STREAM 2
615 #define _LOCK_DEBUG 3
616 #define _MAX_LOCK 4 /* one more than highest lock number */
617 
618  #ifdef __cplusplus
620 enum _Uninitialized
621  { // tag for suppressing initialization
622  _Noinit
623  };
624 
625  // CLASS _Lockit
626 // warning 4412 is benign here
627 #pragma warning(push)
628 #pragma warning(disable:4412)
629 class _CRTIMP2_PURE _Lockit
630  { // lock while object in existence -- MUST NEST
631 public:
632  #if _MULTI_THREAD
633 
634  #if defined(_M_CEE_PURE) || defined(MRTDLL)
635  __CLR_OR_THIS_CALL _Lockit()
636  : _Locktype(0)
637  { // default construct
638  _Lockit_ctor(this);
639  }
640 
641  explicit __CLR_OR_THIS_CALL _Lockit(int _Kind)
642  { // set the lock
643  _Lockit_ctor(this, _Kind);
644  }
645 
646  __CLR_OR_THIS_CALL ~_Lockit() _NOEXCEPT
647  { // clear the lock
648  _Lockit_dtor(this);
649  }
650 
651  #else /* defined(_M_CEE_PURE) || defined(MRTDLL) */
652  __thiscall _Lockit(); // default construct
653  explicit __thiscall _Lockit(int); // set the lock
654  __thiscall ~_Lockit() _NOEXCEPT; // clear the lock
655  #endif /* defined(_M_CEE_PURE) || defined(MRTDLL) */
656 
657  static _MRTIMP2_NPURE void __cdecl _Lockit_ctor(int);
658  static _MRTIMP2_NPURE void __cdecl _Lockit_dtor(int);
659 
660 private:
661  static _MRTIMP2_NPURE void __cdecl _Lockit_ctor(_Lockit *);
662  static _MRTIMP2_NPURE void __cdecl _Lockit_ctor(_Lockit *, int);
663  static _MRTIMP2_NPURE void __cdecl _Lockit_dtor(_Lockit *);
664 
665 public:
666  __CLR_OR_THIS_CALL _Lockit(const _Lockit&) = delete;
667  _Lockit& __CLR_OR_THIS_CALL operator=(const _Lockit&) = delete;
668 
669 private:
670  int _Locktype;
671 
672  #else /* _MULTI_THREAD */
673  _Lockit()
674  { // do nothing
675  }
676 
677  explicit _Lockit(int)
678  { // do nothing
679  }
680 
681  ~_Lockit() _NOEXCEPT
682  { // do nothing
683  }
684  #endif /* _MULTI_THREAD */
685  };
686 
687  #ifdef _M_CEE
688 class _CRTIMP2_PURE _EmptyLockit
689  { // empty lock class used for bin compat
690 public:
691  #if _MULTI_THREAD
692 private:
693  int _Locktype;
694  #endif /* _MULTI_THREAD */
695  };
696 
697  #if defined(__cplusplus_cli)
698  #define _M_CEE_FINALLY finally
699  #else /* defined(__cplusplus_cli) */
700  #define _M_CEE_FINALLY __finally
701  #endif /* defined(__cplusplus_cli) */
702 
703  #define _BEGIN_LOCK(_Kind) \
704  { \
705  typedef int _TmpTestType; \
706  __if_exists(_TmpTestType::ToString) \
707  { \
708  bool _MustReleaseLock = false; \
709  int _LockKind = _Kind; \
710  System::Runtime::CompilerServices::RuntimeHelpers::PrepareConstrainedRegions(); \
711  try \
712  } \
713  { \
714  __if_exists(_TmpTestType::ToString) \
715  { \
716  System::Runtime::CompilerServices::RuntimeHelpers::PrepareConstrainedRegions(); \
717  try { } _M_CEE_FINALLY \
718  { \
719  _STD _Lockit::_Lockit_ctor(_LockKind); \
720  _MustReleaseLock = true; \
721  } \
722  } \
723  __if_not_exists(_TmpTestType::ToString) \
724  { \
725  _STD _Lockit _Lock(_Kind); \
726  }
727 
728  #define _END_LOCK() \
729  } \
730  __if_exists(_TmpTestType::ToString) \
731  { \
732  _M_CEE_FINALLY \
733  { \
734  if (_MustReleaseLock) \
735  { \
736  _STD _Lockit::_Lockit_dtor(_LockKind); \
737  } \
738  } \
739  } \
740  }
741 
742  #define _BEGIN_LOCINFO(_VarName) \
743  _BEGIN_LOCK(_LOCK_LOCALE) \
744  _Locinfo _VarName;
745 
746  #define _END_LOCINFO() \
747  _END_LOCK() \
748 
749  #define _RELIABILITY_CONTRACT \
750  [System::Runtime::ConstrainedExecution::ReliabilityContract( \
751  System::Runtime::ConstrainedExecution::Consistency::WillNotCorruptState, \
752  System::Runtime::ConstrainedExecution::Cer::Success)]
753 
754  #else /* _M_CEE */
755  #define _BEGIN_LOCK(_Kind) \
756  { \
757  _STD _Lockit _Lock(_Kind);
758 
759  #define _END_LOCK() \
760  }
761 
762  #define _BEGIN_LOCINFO(_VarName) \
763  { \
764  _Locinfo _VarName;
765 
766  #define _END_LOCINFO() \
767  }
768 
769  #define _RELIABILITY_CONTRACT
770  #endif /* _M_CEE */
771 
772 class _CRTIMP2_PURE _Init_locks
773  { // initialize mutexes
774 public:
775  #if _MULTI_THREAD
776  #if defined(_M_CEE_PURE) || defined(MRTDLL)
777  __CLR_OR_THIS_CALL _Init_locks()
778  { // default construct
779  _Init_locks_ctor(this);
780  }
781 
782  __CLR_OR_THIS_CALL ~_Init_locks() _NOEXCEPT
783  { // destroy the object
784  _Init_locks_dtor(this);
785  }
786 
787  #else /* defined(_M_CEE_PURE) || defined(MRTDLL) */
788  __thiscall _Init_locks();
789  __thiscall ~_Init_locks() _NOEXCEPT;
790  #endif /* defined(_M_CEE_PURE) || defined(MRTDLL) */
791 
792 private:
793  static _MRTIMP2_NPURE void __cdecl _Init_locks_ctor(_Init_locks *);
794  static _MRTIMP2_NPURE void __cdecl _Init_locks_dtor(_Init_locks *);
795 
796  #else /* _MULTI_THREAD */
797  _Init_locks()
798  { // do nothing
799  }
800 
801  ~_Init_locks() _NOEXCEPT
802  { // do nothing
803  }
804  #endif /* _MULTI_THREAD */
805  };
806 
807 #pragma warning(pop)
808 _STD_END
809  #endif /* __cplusplus */
810 
811 #ifndef _RELIABILITY_CONTRACT
812  #define _RELIABILITY_CONTRACT
813 #endif /* _RELIABILITY_CONTRACT */
814 
815  /* MISCELLANEOUS MACROS AND TYPES */
817 _MRTIMP2 void __cdecl _Atexit(void (__cdecl *)(void));
818 
819 typedef int _Mbstatet;
820 typedef unsigned long _Uint32t;
821 
822 #define _Mbstinit(x) mbstate_t x = {0}
824 
825  #define _THROW_BAD_ALLOC _THROW1(...)
826  #define _NO_RETURN(fun) __declspec(noreturn) void fun
827 
828  #pragma pop_macro("new")
829  #pragma pack(pop)
830 #endif /* RC_INVOKED */
831 #endif /* _YVALS */
832 
833 /*
834  * Copyright (c) 1992-2012 by P.J. Plauger. ALL RIGHTS RESERVED.
835  * Consult your license regarding permissions and restrictions.
836  V6.00:0009 */
#define _C_STD_BEGIN
Definition: yvals.h:557
_C_STD_BEGIN _MRTIMP2 void __cdecl _Atexit(void(__cdecl *)(void))
#define _ULONGLONG
Definition: yvals.h:575
#define _STD_BEGIN
Definition: yvals.h:553
#define _MRTIMP2
Definition: crtdefs.h:191
unsigned long _Uint32t
Definition: yvals.h:820
unsigned short char16_t
Definition: yvals.h:605
#define _NOEXCEPT
Definition: yvals.h:25
#define _C_STD_END
Definition: yvals.h:558
#define __CLR_OR_THIS_CALL
Definition: crtdefs.h:202
#define _LONGLONG
Definition: yvals.h:574
_LONGLONG _Longlong
Definition: yvals.h:586
#define _STD_END
Definition: yvals.h:554
int _Mbstatet
Definition: yvals.h:819
unsigned int char32_t
Definition: yvals.h:606
#define _MRTIMP2_NPURE
Definition: yvals.h:466
#define _CRTIMP2_PURE
Definition: yvals.h:483
_ULONGLONG _ULonglong
Definition: yvals.h:587