// xstddef standard header
#pragma once
#ifndef _XSTDDEF_
#define _XSTDDEF_
#ifndef _YVALS
 #include <yvals.h>
#endif /* _YVALS */

#include <cstddef>

#pragma pack(push,8)
#pragma warning(push,3)
_STD_BEGIN

		// EXCEPTION MACROS

 #if _HAS_EXCEPTIONS
 #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 ()
 #define _THROW1(x)	throw (...)
 #define _THROW(x, y)	throw x(y)

 #else /* _HAS_EXCEPTIONS */
 #define _TRY_BEGIN	{{
 #define _CATCH(x)	} if (0) {
 #define _CATCH_ALL	} if (0) {
 #define _CATCH_END	}}

 #define _RAISE(x)	_Throw(x)
 #define _RERAISE

 #define _THROW0()
 #define _THROW1(x)
 #define _THROW(x, y)	x(y)._Raise()
 #endif /* _HAS_EXCEPTIONS */

		// 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};

		// FUNCTIONS
_CRTIMP2 void __cdecl _Nomemory();
_STD_END
#pragma warning(pop)
#pragma pack(pop)

#endif /* _XSTDDEF_ */

/*
 * Copyright (c) 1992-2002 by P.J. Plauger.  ALL RIGHTS RESERVED.
 * Consult your license regarding permissions and restrictions.
 V3.13:0009 */
