00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef MAIN_H
00021 #define MAIN_H
00022
00028
00029
00030
00031
00032
00033 #ifndef __cplusplus
00034 #define bool /!/!/
00035 #define catch /!/!/
00036 #define class /!/!/
00037 #define complex /!/!/
00038 #define const_cast /!/!/
00039 #define delete /!/!/
00040 #define dynamic_cast /!/!/
00041 #define explicit /!/!/
00042 #define false /!/!/
00043 #define friend /!/!/
00044 #define inline /!/!/
00045 #define mutable /!/!/
00046 #define namespace /!/!/
00047 #define new /!/!/
00048 #define operator /!/!/
00049 #define private /!/!/
00050 #define protected /!/!/
00051 #define public /!/!/
00052 #define reinterpret_cast /!/!/
00053 #define static_cast /!/!/
00054 #define template /!/!/
00055 #define this /!/!/
00056 #define throw /!/!/
00057 #define true /!/!/
00058 #define try /!/!/
00059 #define typeid /!/!/
00060 #define typename /!/!/
00061 #define using /!/!/
00062 #define virtual /!/!/
00063 #endif
00064
00065
00066
00067
00068 #define SIZEOF(a) (sizeof(a) / sizeof(a[0]))
00069 #define ENDOF(a) ((a) + SIZEOF(a))
00070
00071
00072
00073
00074 #ifdef __GNUC__
00075 #define ATTR_PRINTF(x, y) __attribute__((format(printf, x, y)))
00076 #define ATTR_VPRINTF(x) __attribute__((format(printf, x, 0)))
00077 #define NORETURN __attribute__((noreturn))
00078 #else
00079 #define ATTR_PRINTF(x, y)
00080 #define ATTR_VPRINTF(x)
00081 #define NORETURN
00082 #endif
00083
00084 #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
00085 #define DEPRECATED __attribute__((deprecated))
00086 #else
00087 #define DEPRECATED
00088 #endif
00089
00090
00091
00092
00093
00094
00095
00096
00097 #endif // MAIN_H