// xstddef standard header
#pragma once
#ifndef _XSTDDEF_
#define _XSTDDEF_
#ifndef RC_INVOKED
#ifndef _YVALS
 #include <yvals.h>
#endif /* _YVALS */

#include <cstddef>

#ifdef  _MSC_VER
#pragma pack(push,_CRT_PACKING)
#pragma warning(push,3)
#endif  /* _MSC_VER */

#if defined (_HAS_EXCEPTIONS)
#if !_HAS_EXCEPTIONS
#error "_HAS_EXCEPTIONS == 0 is not supported."
#endif
#endif

_STD_BEGIN

		// EXCEPTION MACROS

 #define _TRY_BEGIN	try {
 #define _CATCH(x)	} catch (x) {
 #define _CATCH_ALL	} catch (...) {
 #define _CATCH_END	}

 #define _RAISE(x)	throw (x)
 #define _RERAISE	throw

 #define _THROW0()	throw ()
 // illegal as C++17 doesn't support dynamic exception specification
 // #define _THROW1(x)	throw (...)
 #define _THROW1(x)

 #define _THROW(x, y)	throw x(y)
 #define _THROW_NCEE(x, y)	_THROW(x, y)


		// BITMASK MACROS
 #define _BITMASK(Enum, Ty)	typedef int Ty

 #define _BITMASK_OPS(Ty)

		// MISCELLANEOUS MACROS
#define _DESTRUCTOR(ty, ptr)	(ptr)->~ty()
#define _MESG(str)	str
#define _PROTECTED	protected

 #define _TDEF(x)		= x
 #define _TDEF2(x, y)	= x, y

 #define _STCONS(ty, name, val)	static const ty name = (ty)(val)

 #ifndef _XSTD
  #define _X_STD_BEGIN	_STD_BEGIN
  #define _X_STD_END	_STD_END
  #define _XSTD	std::/* LEAVE SPACE */
 #endif /* _XSTD */

		// TYPE DEFINITIONS
enum _Uninitialized
	{	// tag for suppressing initialization
	_Noinit};
_STD_END

#ifdef  _MSC_VER
#pragma warning(pop)
#pragma pack(pop)
#endif  /* _MSC_VER */

#endif /* RC_INVOKED */
#endif /* _XSTDDEF_ */

/*
 * Copyright (c) 1992-2004 by P.J. Plauger.  ALL RIGHTS RESERVED.
 * Consult your license regarding permissions and restrictions.
 V4.03:0009 */
// The file \sdpublic\sdk\inc\crt\_70_xstddef was reviewed by LCA in June 2011 and per license is
//   acceptable for Microsoft use under Dealpoint ID 46582, 201971
/* 88bf0570-3001-4e78-a5f2-be5765546192 */ 
