32 #if defined(_MSVC_LANG) && !(defined(__EDG__) && defined(__clang__)) // TRANSITION, VSO#273681
33 #if _MSVC_LANG > 201402
39 #if __cplusplus > 201402
50 #ifndef _STL_WARNING_LEVEL
51 #if defined(_MSVC_WARNING_LEVEL) && _MSVC_WARNING_LEVEL >= 4
52 #define _STL_WARNING_LEVEL 4
54 #define _STL_WARNING_LEVEL 3
58 #if _STL_WARNING_LEVEL < 3
59 #error _STL_WARNING_LEVEL cannot be less than 3.
62 #if _STL_WARNING_LEVEL > 4
63 #error _STL_WARNING_LEVEL cannot be greater than 4.
66 #ifndef _STL_EXTRA_DISABLED_WARNINGS
67 #define _STL_EXTRA_DISABLED_WARNINGS
71 #ifndef _STL_DISABLED_WARNINGS
72 #define _STL_DISABLED_WARNINGS 4702 _STL_EXTRA_DISABLED_WARNINGS
75 #pragma pack(push,_CRT_PACKING)
76 #pragma warning(push,_STL_WARNING_LEVEL)
77 #pragma warning(disable: _STL_DISABLED_WARNINGS)
78 #pragma push_macro("new")
81 #define _CPPLIB_VER 650
84 #define _NOEXCEPT noexcept
85 #define _NOEXCEPT_OP(x) noexcept(x)
87 #define _NOEXCEPT throw ()
88 #define _NOEXCEPT_OP(x)
91 #ifndef _HAS_CONSTEXPR14
92 #if defined(__cpp_constexpr)
93 #if __cpp_constexpr >= 201304
94 #define _HAS_CONSTEXPR14 1
96 #define _HAS_CONSTEXPR14 0
98 #elif defined(_MSC_FULL_VER)
99 #if _MSC_FULL_VER >= 190024318
100 #define _HAS_CONSTEXPR14 1
102 #define _HAS_CONSTEXPR14 0
104 #elif __cplusplus >= 201402
105 #define _HAS_CONSTEXPR14 1
107 #define _HAS_CONSTEXPR14 0
112 #define _CONSTEXPR14 constexpr
114 #define _CONSTEXPR14 inline
119 #define _CONSTEXPR17_11 constexpr
121 #define _CONSTEXPR17_11 inline
125 #if _HAS_CXX17 && _HAS_CONSTEXPR14
126 #define _CONSTEXPR17_14 constexpr
128 #define _CONSTEXPR17_14 inline
132 #ifndef _HAS_AUTO_PTR_ETC
134 #define _HAS_AUTO_PTR_ETC 0
136 #define _HAS_AUTO_PTR_ETC 1
141 #ifndef _HAS_OLD_IOSTREAMS_MEMBERS
143 #define _HAS_OLD_IOSTREAMS_MEMBERS 0
145 #define _HAS_OLD_IOSTREAMS_MEMBERS 1
150 #ifndef _HAS_FUNCTION_ASSIGN
152 #define _HAS_FUNCTION_ASSIGN 0
154 #define _HAS_FUNCTION_ASSIGN 1
159 #ifndef _HAS_TR1_NAMESPACE
161 #define _HAS_TR1_NAMESPACE 0
163 #define _HAS_TR1_NAMESPACE 1
168 #ifndef _HAS_IDENTITY_STRUCT
170 #define _HAS_IDENTITY_STRUCT 0
172 #define _HAS_IDENTITY_STRUCT 1
177 #ifdef _RTC_CONVERSION_CHECKS_ENABLED
178 #ifndef _ALLOW_RTCc_IN_STL
179 static_assert(
false,
"/RTCc rejects conformant code, "
180 "so it isn't supported by the C++ Standard Library. "
181 "Either remove this compiler option, or define _ALLOW_RTCc_IN_STL "
182 "to acknowledge that you have received this warning.");
196 #if defined(MRTDLL) && defined(_CRTBLD)
205 #define __PURE_APPDOMAIN_GLOBAL __declspec(appdomain)
207 #define __PURE_APPDOMAIN_GLOBAL
211 #ifndef _CRT_MSVCP_CURRENT
215 #define _CRT_MSVCP_CURRENT "msvcpd_win.dll"
217 #define _CRT_MSVCP_CURRENT "msvcp_win.dll"
222 #define _CRT_MSVCP_CURRENT "msvcp140d.dll"
224 #define _CRT_MSVCP_CURRENT "msvcp140.dll"
229 #ifdef _ITERATOR_DEBUG_LEVEL
232 #if _ITERATOR_DEBUG_LEVEL > 2 && defined(_DEBUG)
233 #error _ITERATOR_DEBUG_LEVEL > 2 is not supported in debug mode.
234 #elif _ITERATOR_DEBUG_LEVEL > 1 && !defined(_DEBUG)
235 #error _ITERATOR_DEBUG_LEVEL > 1 is not supported in release mode.
239 #ifdef _HAS_ITERATOR_DEBUGGING
240 #if _ITERATOR_DEBUG_LEVEL == 2 && _HAS_ITERATOR_DEBUGGING != 1
241 #error _ITERATOR_DEBUG_LEVEL == 2 must imply _HAS_ITERATOR_DEBUGGING == 1 .
242 #elif _ITERATOR_DEBUG_LEVEL < 2 && _HAS_ITERATOR_DEBUGGING != 0
243 #error _ITERATOR_DEBUG_LEVEL < 2 must imply _HAS_ITERATOR_DEBUGGING == 0 .
246 #if _ITERATOR_DEBUG_LEVEL == 2
247 #define _HAS_ITERATOR_DEBUGGING 1
249 #define _HAS_ITERATOR_DEBUGGING 0
255 #if _ITERATOR_DEBUG_LEVEL > 0 && _SECURE_SCL != 1
256 #error _ITERATOR_DEBUG_LEVEL > 0 must imply _SECURE_SCL == 1 .
257 #elif _ITERATOR_DEBUG_LEVEL == 0 && _SECURE_SCL != 0
258 #error _ITERATOR_DEBUG_LEVEL == 0 must imply _SECURE_SCL == 0 .
261 #if _ITERATOR_DEBUG_LEVEL > 0
262 #define _SECURE_SCL 1
264 #define _SECURE_SCL 0
271 #ifdef _HAS_ITERATOR_DEBUGGING
272 #if _HAS_ITERATOR_DEBUGGING > 1
273 #error _HAS_ITERATOR_DEBUGGING must be either 0 or 1 .
274 #elif _HAS_ITERATOR_DEBUGGING == 1 && !defined(_DEBUG)
275 #error _HAS_ITERATOR_DEBUGGING == 1 is not supported in release mode.
279 #define _HAS_ITERATOR_DEBUGGING 1
281 #define _HAS_ITERATOR_DEBUGGING 0
288 #error _SECURE_SCL must be either 0 or 1 .
291 #if _HAS_ITERATOR_DEBUGGING == 1
292 #define _SECURE_SCL 1
294 #define _SECURE_SCL 0
299 #if _HAS_ITERATOR_DEBUGGING
300 #define _ITERATOR_DEBUG_LEVEL 2
302 #define _ITERATOR_DEBUG_LEVEL 1
304 #define _ITERATOR_DEBUG_LEVEL 0
309 #define _STRINGIZEX(x) #x
310 #define _STRINGIZE(x) _STRINGIZEX(x)
313 #ifndef _ALLOW_MSC_VER_MISMATCH
314 #pragma detect_mismatch("_MSC_VER", "1900")
317 #ifndef _ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH
318 #pragma detect_mismatch("_ITERATOR_DEBUG_LEVEL", _STRINGIZE(_ITERATOR_DEBUG_LEVEL))
321 #ifndef _ALLOW_RUNTIME_LIBRARY_MISMATCH
322 #if !defined(_DLL) && !defined(_DEBUG)
323 #pragma detect_mismatch("RuntimeLibrary", "MT_StaticRelease")
324 #elif !defined(_DLL) && defined(_DEBUG)
325 #pragma detect_mismatch("RuntimeLibrary", "MTd_StaticDebug")
326 #elif defined(_DLL) && !defined(_DEBUG)
327 #pragma detect_mismatch("RuntimeLibrary", "MD_DynamicRelease")
328 #elif defined(_DLL) && defined(_DEBUG)
329 #pragma detect_mismatch("RuntimeLibrary", "MDd_DynamicDebug")
334 #ifdef _ITERATOR_DEBUG_ARRAY_OVERLOADS
335 #if _ITERATOR_DEBUG_ARRAY_OVERLOADS != 0 && _ITERATOR_DEBUG_ARRAY_OVERLOADS != 1
336 #error _ITERATOR_DEBUG_ARRAY_OVERLOADS must be either 0 or 1 .
337 #elif _ITERATOR_DEBUG_LEVEL == 0 && _ITERATOR_DEBUG_ARRAY_OVERLOADS == 1
338 #error _ITERATOR_DEBUG_LEVEL == 0 must imply _ITERATOR_DEBUG_ARRAY_OVERLOADS == 0 .
341 #if _ITERATOR_DEBUG_LEVEL == 0
342 #define _ITERATOR_DEBUG_ARRAY_OVERLOADS 0
344 #define _ITERATOR_DEBUG_ARRAY_OVERLOADS 1
349 #if !defined(_SCL_SECURE_NO_WARNINGS) && defined(_SCL_SECURE_NO_DEPRECATE)
350 #define _SCL_SECURE_NO_WARNINGS
353 #if !defined (_SECURE_SCL_DEPRECATE)
354 #if defined(_SCL_SECURE_NO_WARNINGS)
355 #define _SECURE_SCL_DEPRECATE 0
357 #define _SECURE_SCL_DEPRECATE 1
364 #if _ITERATOR_DEBUG_LEVEL > 0 && _SECURE_SCL_DEPRECATE
365 #define _SCL_INSECURE_DEPRECATE_FN(_Func) \
366 _CRT_DEPRECATE_TEXT( \
367 "Call to 'std::" #_Func "' with parameters that may be unsafe - " \
368 "this call relies on the caller to check that the passed values are correct. " \
369 "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " \
370 "See documentation on how to use Visual C++ 'Checked Iterators'")
372 #define _SCL_INSECURE_DEPRECATE_FN(_Func)
375 #ifndef _SCL_SECURE_INVALID_PARAMETER
376 #define _SCL_SECURE_INVALID_PARAMETER(expr) _CRT_SECURE_INVALID_PARAMETER(expr)
379 #define _SCL_SECURE_INVALID_ARGUMENT_NO_ASSERT _SCL_SECURE_INVALID_PARAMETER("invalid argument")
380 #define _SCL_SECURE_OUT_OF_RANGE_NO_ASSERT _SCL_SECURE_INVALID_PARAMETER("out of range")
382 #define _SCL_SECURE_ALWAYS_VALIDATE(cond) \
386 _ASSERTE(#cond && 0); \
387 _SCL_SECURE_INVALID_ARGUMENT_NO_ASSERT; \
389 _Analysis_assume_(cond); \
392 #define _SCL_SECURE_CRT_VALIDATE(cond, retvalue) \
396 _ASSERTE(#cond && 0); \
397 _SCL_SECURE_INVALID_PARAMETER(cond); \
402 #if _ITERATOR_DEBUG_LEVEL > 0
404 #define _SCL_SECURE_VALIDATE(cond) \
408 _ASSERTE(#cond && 0); \
409 _SCL_SECURE_INVALID_ARGUMENT_NO_ASSERT; \
411 _Analysis_assume_(cond); \
414 #define _SCL_SECURE_VALIDATE_RANGE(cond) \
418 _ASSERTE(#cond && 0); \
419 _SCL_SECURE_OUT_OF_RANGE_NO_ASSERT; \
421 _Analysis_assume_(cond); \
427 #if _ITERATOR_DEBUG_LEVEL == 2
428 #define _SCL_SECURE_VALIDATE(cond) _Analysis_assume_(cond)
429 #define _SCL_SECURE_VALIDATE_RANGE(cond) _Analysis_assume_(cond)
431 #define _SCL_SECURE_VALIDATE(cond)
432 #define _SCL_SECURE_VALIDATE_RANGE(cond)
437 #if __STDC_WANT_SECURE_LIB__
438 #define _CRT_SECURE_MEMCPY(dest, destsize, source, count) ::memcpy_s((dest), (destsize), (source), (count))
439 #define _CRT_SECURE_WMEMCPY(dest, destsize, source, count) ::wmemcpy_s((dest), (destsize), (source), (count))
441 #define _CRT_SECURE_MEMCPY(dest, destsize, source, count) ::memcpy((dest), (source), (count))
442 #define _CRT_SECURE_WMEMCPY(dest, destsize, source, count) ::wmemcpy((dest), (source), (count))
447 #if defined(_M_CEE) && defined(_STATIC_CPPLIB)
448 #error _STATIC_CPPLIB is not supported while building with /clr or /clr:pure
451 #if defined(_DLL) && defined(_STATIC_CPPLIB) && !defined(_DISABLE_DEPRECATE_STATIC_CPPLIB)
452 #pragma _CRT_WARNING("_STATIC_CPPLIB is deprecated")
457 #if defined(CRTDLL2) && defined(_CRTBLD)
458 #define _CRTIMP2 __declspec(dllexport)
461 #if defined(_DLL) && !defined(_STATIC_CPPLIB)
462 #define _CRTIMP2 __declspec(dllimport)
472 #ifndef _CRTIMP2_NCEEPURE
473 #if defined(_M_CEE_PURE)
474 #define _CRTIMP2_NCEEPURE
476 #define _CRTIMP2_NCEEPURE _CRTIMP2
480 #ifndef _MRTIMP2_PURE
481 #if defined(_M_CEE_PURE)
482 #define _MRTIMP2_PURE
484 #define _MRTIMP2_PURE _MRTIMP2
488 #ifndef _MRTIMP2_PURE_NPURE
489 #if defined(_M_CEE_PURE)
490 #define _MRTIMP2_PURE_NPURE
492 #define _MRTIMP2_PURE_NPURE _MRTIMP2_NPURE
497 #ifndef _MRTIMP2_NPURE
498 #if defined(MRTDLL) && defined(_CRTBLD)
499 #if !defined(_M_CEE_PURE)
500 #define _MRTIMP2_NPURE __declspec(dllexport)
502 #define _MRTIMP2_NPURE
506 #if defined(_DLL) && defined(_M_CEE_PURE)
507 #define _MRTIMP2_NPURE __declspec(dllimport)
510 #define _MRTIMP2_NPURE
516 #if defined(_DLL) && !defined(_STATIC_CPPLIB) && !defined(_M_CEE_PURE)
520 #ifndef _CRTIMP2_PURE
521 #if defined(MRTDLL) && defined(_CRTBLD)
522 #define _CRTIMP2_PURE
525 #define _CRTIMP2_PURE
527 #define _CRTIMP2_PURE _CRTIMP2
533 #if !defined(_CRTDATA2)
535 #define _CRTDATA2 _CRTIMP2
542 #define _cpp_stdin (__acrt_iob_func(0))
543 #define _cpp_stdout (__acrt_iob_func(1))
544 #define _cpp_stderr (__acrt_iob_func(2))
545 #define _cpp_isleadbyte(c) (__pctype_func()[(unsigned char)(c)] & _LEADBYTE)
547 #if !defined(_CRTDATA2)
548 #define _CRTDATA2 _CRTIMP2
553 #define _STD_BEGIN namespace std {
560 #define _STDEXT_BEGIN namespace stdext {
561 #define _STDEXT_END }
562 #define _STDEXT ::stdext::
567 #define _EXTERN_C extern "C" {
568 #define _END_EXTERN_C }
573 #define _END_EXTERN_C
577 #define _MAX_EXP_DIG 8
578 #define _MAX_INT_DIG 32
579 #define _MAX_SIG_DIG_V1 36
580 #define _MAX_SIG_DIG_V2 768
585 #define _IOBASE _base
591 #define _LOCK_LOCALE 0
592 #define _LOCK_MALLOC 1
593 #define _LOCK_STREAM 2
594 #define _LOCK_DEBUG 3
595 #define _LOCK_AT_THREAD_EXIT 4
608 #if defined(_M_CEE_PURE) || defined(MRTDLL)
617 _Lockit_ctor(
this, _Kind);
626 __thiscall _Lockit();
627 explicit __thiscall _Lockit(
int);
654 #if defined(__cplusplus_cli)
655 #define _M_CEE_FINALLY finally
657 #define _M_CEE_FINALLY __finally
660 #define _BEGIN_LOCK(_Kind) \
662 typedef int _TmpTestType; \
663 __if_exists(_TmpTestType::ToString) \
665 bool _MustReleaseLock = false; \
666 int _LockKind = _Kind; \
667 System::Runtime::CompilerServices::RuntimeHelpers::PrepareConstrainedRegions(); \
671 __if_exists(_TmpTestType::ToString) \
673 System::Runtime::CompilerServices::RuntimeHelpers::PrepareConstrainedRegions(); \
674 try { } _M_CEE_FINALLY \
676 _STD _Lockit::_Lockit_ctor(_LockKind); \
677 _MustReleaseLock = true; \
680 __if_not_exists(_TmpTestType::ToString) \
682 _STD _Lockit _Lock(_Kind); \
685 #define _END_LOCK() \
687 __if_exists(_TmpTestType::ToString) \
691 if (_MustReleaseLock) \
693 _STD _Lockit::_Lockit_dtor(_LockKind); \
699 #define _BEGIN_LOCINFO(_VarName) \
700 _BEGIN_LOCK(_LOCK_LOCALE) \
703 #define _END_LOCINFO() \
706 #define _RELIABILITY_CONTRACT \
707 [System::Runtime::ConstrainedExecution::ReliabilityContract( \
708 System::Runtime::ConstrainedExecution::Consistency::WillNotCorruptState, \
709 System::Runtime::ConstrainedExecution::Cer::Success)]
712 #define _BEGIN_LOCK(_Kind) \
714 _STD _Lockit _Lock(_Kind);
716 #define _END_LOCK() \
719 #define _BEGIN_LOCINFO(_VarName) \
723 #define _END_LOCINFO() \
726 #define _RELIABILITY_CONTRACT
732 #if defined(_M_CEE_PURE) || defined(MRTDLL)
735 _Init_locks_ctor(
this);
740 _Init_locks_dtor(
this);
744 __thiscall _Init_locks();
749 static _MRTIMP2_NPURE void __cdecl _Init_locks_ctor(_Init_locks *);
750 static _MRTIMP2_NPURE void __cdecl _Init_locks_dtor(_Init_locks *);
756 #ifndef _RELIABILITY_CONTRACT
757 #define _RELIABILITY_CONTRACT
765 #define _Mbstinit(x) mbstate_t x = {}
767 #pragma pop_macro("new")
_Variant_copymove_layer_ & operator=(_Variant_copymove_layer_ &&_That) _NOEXCEPT_OP((conjunction< is_nothrow_move_constructible< _Types >...
_MRTIMP2 void __cdecl _Atexit(void(__cdecl *)(void))
#define _STD_BEGIN
Definition: yvals.h:553
#define _MRTIMP2
Definition: crtdefs.h:62
unsigned long _Uint32t
Definition: yvals.h:763
#define _NOEXCEPT
Definition: yvals.h:84
#define __CLR_OR_THIS_CALL
Definition: vcruntime.h:147
#define _STD_END
Definition: yvals.h:554
#define _MRTIMP2_NPURE
Definition: yvals.h:510
#define _CRTIMP2_PURE
Definition: yvals.h:527