📄 yvals.h
字号:
/* yvals.h values header for Microsoft C/C++ */
#pragma once
#ifndef _YVALS
#define _YVALS
#include <crtdefs.h>
#pragma pack(push,_CRT_PACKING)
#define _CPPLIB_VER 520
#define _ALLOW_KEYWORD_MACROS // TRANSITION
#ifndef _ALLOW_KEYWORD_MACROS
#include <xkeycheck.h>
#endif /* _ALLOW_KEYWORD_MACROS */
#ifndef _HAS_CPP0X
#define _HAS_CPP0X 1
#endif
#define _HAS_TR1 1 /* enable TR1 extensions */
/* Note on use of "deprecate":
* Various places in this header and other headers use __declspec(deprecate) or macros that have the term DEPRECATE in them.
* We use deprecate here ONLY to signal the compiler to emit a warning about these items. The use of deprecate
* should NOT be taken to imply that any standard committee has deprecated these functions from the relevant standards.
* In fact, these functions are NOT deprecated from the standard.
*
* Full details can be found in our documentation by searching for "Checked Iterators".
*/
#if defined(MRTDLL)
/*
process-global is the default for code built with /clr or /clr:oldSyntax.
appdomain-global is the default for code built with /clr:pure.
Code in MSVCM is built with /clr, but is used by user code built with /clr:pure
so it must conform to the expectations of /clr:pure clients.
Use __PURE_APPDOMAIN_GLOBAL when a global needs to be appdomain-global for pure
clients and process-global for mixed clients.
*/
#define __PURE_APPDOMAIN_GLOBAL __declspec(appdomain)
#else
#define __PURE_APPDOMAIN_GLOBAL
#endif
#ifndef __CRTDECL
#if defined(_M_CEE_PURE) || defined(MRTDLL)
#define __CRTDECL __clrcall
#else
#define __CRTDECL __cdecl
#endif
#endif
#ifndef __CLR_OR_THIS_CALL
#if defined(MRTDLL) || defined(_M_CEE_PURE)
#define __CLR_OR_THIS_CALL __clrcall
#else
#define __CLR_OR_THIS_CALL
#endif
#endif
#ifndef __CLRCALL_OR_CDECL
#if defined(MRTDLL) || defined(_M_CEE_PURE)
#define __CLRCALL_OR_CDECL __clrcall
#else
#define __CLRCALL_OR_CDECL __cdecl
#endif
#endif
#ifndef __CLRCALL_PURE_OR_CDECL
#if defined(_M_CEE_PURE)
#define __CLRCALL_PURE_OR_CDECL __clrcall
#else
#define __CLRCALL_PURE_OR_CDECL __cdecl
#endif
#endif
/* CURRENT DLL NAMES */
#ifndef _CRT_MSVCP_CURRENT
#ifdef _DEBUG
#define _CRT_MSVCP_CURRENT "MSVCP100D.dll"
#else
#define _CRT_MSVCP_CURRENT "MSVCP100.dll"
#endif
#endif
/* NAMING PROPERTIES */
#define _WIN32_C_LIB 1
/* THREAD AND LOCALE CONTROL */
#define _MULTI_THREAD 1 /* nontrivial locks if multithreaded */
#define _IOSTREAM_OP_LOCKS 1 /* lock iostream operations */
#define _GLOBAL_LOCALE 0 /* 0 for per-thread locales, 1 for shared */
/* THREAD-LOCAL STORAGE */
#define _COMPILER_TLS 1 /* 1 if compiler supports TLS directly */
#if _MULTI_THREAD
#define _TLS_QUAL __declspec(thread) /* TLS qualifier, if any */
#else /* _MULTI_THREAD */
#define _TLS_QUAL
#endif /* _MULTI_THREAD */
#ifndef _HAS_EXCEPTIONS
#define _HAS_EXCEPTIONS 1 /* predefine as 0 to disable exceptions */
#endif /* _HAS_EXCEPTIONS */
#ifndef _HAS_STRICT_CONFORMANCE
#define _HAS_STRICT_CONFORMANCE 0
#endif /* _HAS_STRICT_CONFORMANCE */
#ifndef _HAS_TR1_IMPORTS
#define _HAS_TR1_IMPORTS _HAS_CPP0X
#endif
#define _GLOBAL_USING 1
#ifdef _ITERATOR_DEBUG_LEVEL /* A. _ITERATOR_DEBUG_LEVEL is already defined. */
/* A1. Validate _ITERATOR_DEBUG_LEVEL. */
#if _ITERATOR_DEBUG_LEVEL > 2 && defined(_DEBUG)
#error _ITERATOR_DEBUG_LEVEL > 2 is not supported in debug mode.
#elif _ITERATOR_DEBUG_LEVEL > 1 && !defined(_DEBUG)
#error _ITERATOR_DEBUG_LEVEL > 1 is not supported in release mode.
#endif
/* A2. Inspect _HAS_ITERATOR_DEBUGGING. */
#ifdef _HAS_ITERATOR_DEBUGGING /* A2i. _HAS_ITERATOR_DEBUGGING is already defined, validate it. */
#if _ITERATOR_DEBUG_LEVEL == 2 && _HAS_ITERATOR_DEBUGGING != 1
#error _ITERATOR_DEBUG_LEVEL == 2 must imply _HAS_ITERATOR_DEBUGGING == 1 .
#elif _ITERATOR_DEBUG_LEVEL < 2 && _HAS_ITERATOR_DEBUGGING != 0
#error _ITERATOR_DEBUG_LEVEL < 2 must imply _HAS_ITERATOR_DEBUGGING == 0 .
#endif
#else /* A2ii. _HAS_ITERATOR_DEBUGGING is not yet defined, derive it. */
#if _ITERATOR_DEBUG_LEVEL == 2
#define _HAS_ITERATOR_DEBUGGING 1
#else
#define _HAS_ITERATOR_DEBUGGING 0
#endif
#endif /* _HAS_ITERATOR_DEBUGGING */
/* A3. Inspect _SECURE_SCL. */
#ifdef _SECURE_SCL /* A3i. _SECURE_SCL is already defined, validate it. */
#if _ITERATOR_DEBUG_LEVEL > 0 && _SECURE_SCL != 1
#error _ITERATOR_DEBUG_LEVEL > 0 must imply _SECURE_SCL == 1 .
#elif _ITERATOR_DEBUG_LEVEL == 0 && _SECURE_SCL != 0
#error _ITERATOR_DEBUG_LEVEL == 0 must imply _SECURE_SCL == 0 .
#endif
#else /* A3ii. _SECURE_SCL is not yet defined, derive it. */
#if _ITERATOR_DEBUG_LEVEL > 0
#define _SECURE_SCL 1
#else
#define _SECURE_SCL 0
#endif
#endif /* _SECURE_SCL */
#else /* B. _ITERATOR_DEBUG_LEVEL is not yet defined. */
/* B1. Inspect _HAS_ITERATOR_DEBUGGING. */
#ifdef _HAS_ITERATOR_DEBUGGING /* B1i. _HAS_ITERATOR_DEBUGGING is already defined, validate it. */
#if _HAS_ITERATOR_DEBUGGING > 1
#error _HAS_ITERATOR_DEBUGGING must be either 0 or 1 .
#elif _HAS_ITERATOR_DEBUGGING == 1 && !defined(_DEBUG)
#error _HAS_ITERATOR_DEBUGGING == 1 is not supported in release mode.
#endif
#else /* B1ii. _HAS_ITERATOR_DEBUGGING is not yet defined, default it. */
#ifdef _DEBUG
#define _HAS_ITERATOR_DEBUGGING 1
#else
#define _HAS_ITERATOR_DEBUGGING 0
#endif
#endif /* _HAS_ITERATOR_DEBUGGING */
/* B2. Inspect _SECURE_SCL. */
#ifdef _SECURE_SCL /* B2i. _SECURE_SCL is already defined, validate it. */
#if _SECURE_SCL > 1
#error _SECURE_SCL must be either 0 or 1 .
#endif
#else /* B2ii. _SECURE_SCL is not yet defined, default it. */
#if _HAS_ITERATOR_DEBUGGING == 1
#define _SECURE_SCL 1
#else
#define _SECURE_SCL 0
#endif
#endif /* _SECURE_SCL */
/* B3. Derive _ITERATOR_DEBUG_LEVEL. */
#if _HAS_ITERATOR_DEBUGGING
#define _ITERATOR_DEBUG_LEVEL 2
#elif _SECURE_SCL
#define _ITERATOR_DEBUG_LEVEL 1
#else
#define _ITERATOR_DEBUG_LEVEL 0
#endif
#endif /* _ITERATOR_DEBUG_LEVEL */
#if defined(_CRTBLD) && defined(_DLL)
#define _ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH
#endif
#ifdef __cplusplus
#ifndef _ALLOW_MSC_VER_MISMATCH
#pragma detect_mismatch("_MSC_VER", "1600")
#endif /* _ALLOW_MSC_VER_MISMATCH */
#ifndef _ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH
#if _ITERATOR_DEBUG_LEVEL == 0
#pragma detect_mismatch("_ITERATOR_DEBUG_LEVEL", "0")
#elif _ITERATOR_DEBUG_LEVEL == 1
#pragma detect_mismatch("_ITERATOR_DEBUG_LEVEL", "1")
#elif _ITERATOR_DEBUG_LEVEL == 2
#pragma detect_mismatch("_ITERATOR_DEBUG_LEVEL", "2")
#else
#error Unrecognized _ITERATOR_DEBUG_LEVEL value.
#endif
#endif /* _ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH */
#endif /* __cplusplus */
/* See note on use of deprecate at the top of this file */
#if !defined(_SCL_SECURE_NO_WARNINGS) && defined(_SCL_SECURE_NO_DEPRECATE)
#define _SCL_SECURE_NO_WARNINGS
#endif
#if !defined (_SECURE_SCL_DEPRECATE)
#if defined(_SCL_SECURE_NO_WARNINGS)
#define _SECURE_SCL_DEPRECATE 0
#else
#define _SECURE_SCL_DEPRECATE 1
#endif
#endif
#if !defined (_SECURE_SCL_THROWS)
#define _SECURE_SCL_THROWS 0
#endif
/* _SECURE_SCL switches: helper macros */
/* See note on use of deprecate at the top of this file */
#if _ITERATOR_DEBUG_LEVEL > 0 && _SECURE_SCL_DEPRECATE
#define _SCL_INSECURE_DEPRECATE \
_CRT_DEPRECATE_TEXT( \
"Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. " \
"To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'")
#else
#define _SCL_INSECURE_DEPRECATE
#endif
#ifndef _SCL_SECURE_INVALID_PARAMETER
#define _SCL_SECURE_INVALID_PARAMETER(expr) _CRT_SECURE_INVALID_PARAMETER(expr)
#endif
#if _SECURE_SCL_THROWS
#ifndef _SILENCE_DEPRECATION_OF_SECURE_SCL_THROWS
#include <crtwrn.h>
#pragma push_macro("_SECURE_SCL_THROWS")
#undef _SECURE_SCL_THROWS
#pragma _CRT_WARNING( _DEPRECATE_SECURE_SCL_THROWS )
#pragma pop_macro("_SECURE_SCL_THROWS")
#endif /* _SILENCE_DEPRECATION_OF_SECURE_SCL_THROWS */
#define _SCL_SECURE_INVALID_ARGUMENT_NO_ASSERT _STD _Xinvalid_argument("invalid argument")
#define _SCL_SECURE_OUT_OF_RANGE_NO_ASSERT _STD _Xout_of_range("out of range")
#else /* _SECURE_SCL_THROWS */
#define _SCL_SECURE_INVALID_ARGUMENT_NO_ASSERT _SCL_SECURE_INVALID_PARAMETER("invalid argument")
#define _SCL_SECURE_OUT_OF_RANGE_NO_ASSERT _SCL_SECURE_INVALID_PARAMETER("out of range")
#endif /* _SECURE_SCL_THROWS */
#define _SCL_SECURE_ALWAYS_VALIDATE(cond) \
{ \
if (!(cond)) \
{ \
_ASSERTE(#cond && 0); \
_SCL_SECURE_INVALID_ARGUMENT_NO_ASSERT; \
} \
__analysis_assume(cond); \
}
#define _SCL_SECURE_ALWAYS_VALIDATE_RANGE(cond) \
{ \
if (!(cond)) \
{ \
_ASSERTE(#cond && 0); \
_SCL_SECURE_OUT_OF_RANGE_NO_ASSERT; \
} \
__analysis_assume(cond); \
}
#define _SCL_SECURE_CRT_VALIDATE(cond, retvalue) \
{ \
if (!(cond)) \
{ \
_ASSERTE(#cond && 0); \
_SCL_SECURE_INVALID_PARAMETER(cond); \
return (retvalue); \
} \
}
#if _ITERATOR_DEBUG_LEVEL > 0
#define _SCL_SECURE_VALIDATE(cond) \
{ \
if (!(cond)) \
{ \
_ASSERTE(#cond && 0); \
_SCL_SECURE_INVALID_ARGUMENT_NO_ASSERT; \
} \
__analysis_assume(cond); \
}
#define _SCL_SECURE_VALIDATE_RANGE(cond) \
{ \
if (!(cond)) \
{ \
_ASSERTE(#cond && 0); \
_SCL_SECURE_OUT_OF_RANGE_NO_ASSERT; \
} \
__analysis_assume(cond); \
}
#define _SCL_SECURE_INVALID_ARGUMENT \
{ \
_ASSERTE("Standard C++ Libraries Invalid Argument" && 0); \
_SCL_SECURE_INVALID_ARGUMENT_NO_ASSERT; \
}
#define _SCL_SECURE_OUT_OF_RANGE \
{ \
_ASSERTE("Standard C++ Libraries Out of Range" && 0); \
_SCL_SECURE_OUT_OF_RANGE_NO_ASSERT; \
}
#else /* _ITERATOR_DEBUG_LEVEL > 0 */
/* when users disable _SECURE_SCL to get performance, we don't want analysis warnings from SCL headers */
#if _ITERATOR_DEBUG_LEVEL == 2
#define _SCL_SECURE_VALIDATE(cond) __analysis_assume(cond)
#define _SCL_SECURE_VALIDATE_RANGE(cond) __analysis_assume(cond)
#else
#define _SCL_SECURE_VALIDATE(cond)
#define _SCL_SECURE_VALIDATE_RANGE(cond)
#endif
#define _SCL_SECURE_INVALID_ARGUMENT
#define _SCL_SECURE_OUT_OF_RANGE
#endif /* _ITERATOR_DEBUG_LEVEL > 0 */
#if __STDC_WANT_SECURE_LIB__
#define _CRT_SECURE_MEMCPY(dest, destsize, source, count) ::memcpy_s((dest), (destsize), (source), (count))
#define _CRT_SECURE_MEMMOVE(dest, destsize, source, count) ::memmove_s((dest), (destsize), (source), (count))
#define _CRT_SECURE_WMEMCPY(dest, destsize, source, count) ::wmemcpy_s((dest), (destsize), (source), (count))
#define _CRT_SECURE_WMEMMOVE(dest, destsize, source, count) ::wmemmove_s((dest), (destsize), (source), (count))
#else
#define _CRT_SECURE_MEMCPY(dest, destsize, source, count) ::memcpy((dest), (source), (count))
#define _CRT_SECURE_MEMMOVE(dest, destsize, source, count) ::memmove((dest), (source), (count))
#define _CRT_SECURE_WMEMCPY(dest, destsize, source, count) ::wmemcpy((dest), (source), (count))
#define _CRT_SECURE_WMEMMOVE(dest, destsize, source, count) ::wmemmove((dest), (source), (count))
#endif
#include <use_ansi.h>
#if defined(_M_CEE) && defined(_STATIC_CPPLIB)
#include <crtwrn.h>
#pragma push_macro("_STATIC_CPPLIB")
#undef _STATIC_CPPLIB
#pragma _CRT_WARNING( _CLR_AND_STATIC_CPPLIB )
#pragma pop_macro("_STATIC_CPPLIB")
#endif
#if defined(_DLL) && defined(_STATIC_CPPLIB) && !defined(_DISABLE_DEPRECATE_STATIC_CPPLIB)
#include <crtwrn.h>
#pragma push_macro("_STATIC_CPPLIB")
#undef _STATIC_CPPLIB
#pragma _CRT_WARNING( _DEPRECATE_STATIC_CPPLIB )
#pragma pop_macro("_STATIC_CPPLIB")
#endif
/* Define _CRTIMP2 */
#ifndef _CRTIMP2
#ifdef CRTDLL2
#define _CRTIMP2 __declspec(dllexport)
#else /* ndef CRTDLL2 */
#if defined(_DLL) && !defined(_STATIC_CPPLIB)
#define _CRTIMP2 __declspec(dllimport)
#else /* ndef _DLL && !STATIC_CPPLIB */
#define _CRTIMP2
#endif /* _DLL && !STATIC_CPPLIB */
#endif /* CRTDLL2 */
#endif /* _CRTIMP2 */
/* Define _CRTIMP2_NCEEPURE */
#ifndef _CRTIMP2_NCEEPURE
#if defined(_M_CEE_PURE)
#define _CRTIMP2_NCEEPURE
#else
#define _CRTIMP2_NCEEPURE _CRTIMP2
#endif
#endif
#ifndef _MRTIMP
#ifdef MRTDLL
#if !defined(_M_CEE_PURE)
#define _MRTIMP __declspec(dllexport)
#else
#define _MRTIMP
#endif
#else /* ndef MRTDLL */
#define _MRTIMP __declspec(dllimport)
#endif /* MRTDLL */
#endif /* _MRTIMP */
/* Define _MRTIMP2 */
#ifndef _MRTIMP2
#if defined(CRTDLL2)
#define _MRTIMP2 __declspec(dllexport)
#elif defined(MRTDLL)
#define _MRTIMP2 _MRTIMP
#else /* ndef CRTDLL2 */
#if defined(_DLL) && !defined(_STATIC_CPPLIB)
#define _MRTIMP2 __declspec(dllimport)
#else /* ndef _DLL && !STATIC_CPPLIB */
#define _MRTIMP2
#endif /* _DLL && !STATIC_CPPLIB */
#endif /* CRTDLL2 */
#endif /* _MRTIMP2 */
#ifndef _MRTIMP2_PURE
#if defined(_M_CEE_PURE)
#define _MRTIMP2_PURE
#else
#define _MRTIMP2_PURE _MRTIMP2
#endif
#endif
#ifndef _MRTIMP2_PURE_NPURE
#if defined(_M_CEE_PURE)
#define _MRTIMP2_PURE_NPURE
#else
#define _MRTIMP2_PURE_NPURE _MRTIMP2_NPURE
#endif
#endif
/* Define _MRTIMP2_NPURE */
#ifndef _MRTIMP2_NPURE
#if defined(MRTDLL)
#if !defined(_M_CEE_PURE)
#define _MRTIMP2_NPURE __declspec(dllexport)
#else
#define _MRTIMP2_NPURE
#endif
#else /* ndef MRTDLL */
#if defined(_DLL) && defined(_M_CEE_PURE)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -