|
|
|
1 |
|
// xstddef standard header |
2 |
|
#pragma once |
3 |
|
#ifndef _XSTDDEF_ |
4 |
|
#define _XSTDDEF_ |
5 |
|
#ifndef RC_INVOKED |
6 |
|
#ifndef _YVALS |
7 |
|
#include <yvals.h> |
8 |
|
#endif /* _YVALS */ |
9 |
|
|
10 |
|
#include <cstddef> |
11 |
|
|
12 |
|
#ifdef _MSC_VER |
13 |
|
#pragma pack(push,_CRT_PACKING) |
14 |
|
#pragma warning(push,3) |
15 |
|
#endif /* _MSC_VER */ |
16 |
|
|
17 |
|
_STD_BEGIN |
18 |
|
|
19 |
|
// EXCEPTION MACROS |
20 |
|
#define _THROWS(x) |
21 |
|
|
22 |
|
#if _HAS_EXCEPTIONS |
23 |
|
#define _TRY_BEGIN try { |
24 |
|
#define _CATCH(x) } catch (x) { |
25 |
|
#define _CATCH_ALL } catch (...) { |
26 |
|
#define _CATCH_END } |
27 |
|
|
28 |
|
#define _RAISE(x) throw x |
29 |
|
#define _RERAISE throw |
30 |
|
|
31 |
|
#ifndef _THROWS |
32 |
|
#define _THROWS(x) throw (x) |
33 |
|
#endif /* _THROWS */ |
34 |
|
|
35 |
|
#define _THROW0() throw () |
36 |
|
#define _THROW1(x) throw (...) |
37 |
|
|
38 |
|
#define _THROW(x, y) throw x(y) |
39 |
|
#define _THROW_NCEE(x, y) _THROW(x, y) |
40 |
|
|
41 |
|
#else /* _HAS_EXCEPTIONS */ |
42 |
|
#define _TRY_BEGIN {{ |
43 |
|
#define _CATCH(x) } if (0) { |
44 |
|
#define _CATCH_ALL } if (0) { |
45 |
|
#define _CATCH_END }} |
46 |
|
|
47 |
|
#define _RAISE(x) std::_Throw(x) |
48 |
|
|
49 |
|
#define _RERAISE |
50 |
|
|
51 |
|
#ifndef _THROWS |
52 |
|
#define _THROWS(x) |
53 |
|
#endif /* _THROWS */ |
54 |
|
|
55 |
|
#define _THROW0() |
56 |
|
#define _THROW1(x) |
57 |
|
#define _THROW(x, y) x(y)._Raise() |
58 |
|
#define _THROW_NCEE(x, y) _THROW(x, y) |
59 |
|
#endif /* _HAS_EXCEPTIONS */ |
70 |
|
#define _MESG(str) str |
71 |
|
#define _PROTECTED protected |
72 |
|
|
73 |
|
#define _TDEF(x) = x |
74 |
|
#define _TDEF2(x, y) = x, y |
75 |
|
|
76 |
|
#define _STCONS(ty, name, val) static const ty name = (ty)(val) |
77 |
|
#if !defined(_MSC_EXTENSIONS) && !(defined(_DLL) && !defined(_STATIC_CPPLIB)) |
78 |
|
// Under /Ze, static const members are automatically defined, so provide a |
79 |
|
// definition only under /Za, and only when __declspec(dllimport) not used. |
80 |
|
#define _STCONSDEF(cls, ty, name) __declspec(selectany) const ty cls::name; |
81 |
|
#else |
82 |
|
#define _STCONSDEF(cls, ty, name) |
83 |
|
#endif |
84 |
|
|
85 |
|
#ifndef _XSTD |
86 |
|
#define _X_STD_BEGIN _STD_BEGIN |
87 |
|
#define _X_STD_END _STD_END |
88 |
|
#define _XSTD std::/* LEAVE SPACE */ |
89 |
|
#endif /* _XSTD */ |
90 |
|
|
91 |
|
// TYPE DEFINITIONS |
92 |
|
enum _Uninitialized |
93 |
|
{ // tag for suppressing initialization |
94 |
|
_Noinit}; |
95 |
|
|
96 |
|
#ifndef _CONVERTIBLE_TO_TRUE |
97 |
|
#define _CONVERTIBLE_TO_TRUE (&_STD _Bool_struct::_Member) |
98 |
|
|
99 |
|
struct _Bool_struct |
100 |
|
{ // define member just for its address |
101 |
|
int _Member; |
102 |
|
}; |
103 |
|
|
104 |
|
typedef int _Bool_struct::* _Bool_type; |
105 |
|
#endif /* _CONVERTIBLE_TO_TRUE */ |
106 |
|
_STD_END |
107 |
|
#ifdef _MSC_VER |
108 |
|
#pragma warning(pop) |
109 |
|
#pragma pack(pop) |
110 |
|
#endif /* _MSC_VER */ |
111 |
|
|
112 |
|
#endif /* RC_INVOKED */ |
113 |
|
#endif /* _XSTDDEF_ */ |
114 |
|
|
115 |
|
/* |
116 |
|
* Copyright (c) 1992-2006 by P.J. Plauger. ALL RIGHTS RESERVED. |
117 |
|
* Consult your license regarding permissions and restrictions. |
118 |
|
V5.02:0009 */ |
119 |
|
|
120 |
|
|
121 |
|
|
|
|
|