亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? myexcept.h

?? D-ITG2.4源代碼
?? H
字號(hào):
//$$ myexcept.h                                  Exception handling classes


// A set of classes to simulate exceptions in C++
//
//   Partially copied from Carlos Vidal s article in the C users  journal
//   September 1992, pp 19-28
//
//   Operations defined
//      Try {     }
//      Throw ( exception object )
//      ReThrow
//      Catch ( exception class ) {      }
//      CatchAll {      }
//      CatchAndThrow
//
//   All catch lists must end with a CatchAll or CatchAndThrow statement
//   but not both.
//
//   When exceptions are finally implemented replace Try, Throw(E), Rethrow,
//   Catch, CatchAll, CatchAndThrow by try, throw E, throw, catch,
//   catch(...), and {}.
//
//   All exception classes must be derived from Exception, have no non-static
//   variables and must include the statement
//
//      static unsigned long Select;
//
//   Any constructor in one of these exception classes must include
//
//      Select = Exception::Select;
//
//   For each exceptions class, EX_1, some .cpp file must include
//
//      unsigned long EX_1::Select;
//


#ifndef EXCEPTION_LIB
#define EXCEPTION_LIB

#ifdef use_namespace
namespace RBD_COMMON {
#endif


void Terminate();


//********** classes for setting up exceptions and reporting ************//

class Exception;

class Tracer                             // linked list showing how
{                                        // we got here
   const char* entry;
   Tracer* previous;
public:
   Tracer(const char*);
   ~Tracer();
   void ReName(const char*);
   static void PrintTrace();             // for printing trace
   static void AddTrace();               // insert trace in exception record
   static Tracer* last;                  // points to Tracer list
   friend class Exception;
};


class Exception                          // The base exception class
{
protected:
   static char* what_error;              // error message
   static int SoFar;                     // no. characters already entered
   static int LastOne;                   // last location in error buffer
public:
   static void AddMessage(const char* a_what);
                                         // messages about exception
   static void AddInt(int value);        // integer to error message
   static unsigned long Select;          // for identifying exception
   Exception(const char* a_what = 0);
   static const char* what() { return what_error; }
                                         // for getting error message
};


inline Tracer::Tracer(const char* e)
   : entry(e), previous(last) { last = this; }

inline Tracer::~Tracer() { last = previous; }

inline void Tracer::ReName(const char* e) { entry=e; }

#ifdef SimulateExceptions                // SimulateExceptions

#include <setjmp.h>


//************* the definitions of Try, Throw and Catch *****************//


class JumpItem;
class Janitor;

class JumpBase         // pointer to a linked list of jmp_buf s
{
public:
   static JumpItem *jl;
   static jmp_buf env;
};

class JumpItem         // an item in a linked list of jmp_buf s
{
public:
   JumpItem *ji;
   jmp_buf env;
   Tracer* trace;                     // to keep check on Tracer items
   Janitor* janitor;                  // list of items for cleanup
   JumpItem() : ji(JumpBase::jl), trace(0), janitor(0)
      { JumpBase::jl = this; }
   ~JumpItem() { JumpBase::jl = ji; }
};

void Throw();

inline void Throw(const Exception&) { Throw(); }

#define Try                                             \
   if (!setjmp( JumpBase::jl->env )) {                  \
   JumpBase::jl->trace = Tracer::last;               \
   JumpItem JI387256156;

#define ReThrow Throw()

#define Catch(EXCEPTION)                                \
   } else if (Exception::Select == EXCEPTION::Select) {

#define CatchAll } else

#define CatchAndThrow  } else Throw();


//****************** cleanup heap following Throw ***********************//

class Janitor
{
protected:
   static bool do_not_link;                  // set when new is called
   bool OnStack;                             // false if created by new
public:
   Janitor* NextJanitor;
   virtual void CleanUp() {}
   Janitor();
   virtual ~Janitor();
};


// The tiresome old trick for initializing the Janitor class
// this is needed for classes derived from Janitor which have objects
// declared globally

class JanitorInitializer
{
public:
   JanitorInitializer();
private:
   static int ref_count;
};

static JanitorInitializer JanInit;

#endif                                // end of SimulateExceptions

#ifdef UseExceptions

#define Try try
#define Throw(E) throw E
#define ReThrow throw
#define Catch catch
#define CatchAll catch(...)
#define CatchAndThrow {}

#endif                                // end of UseExceptions


#ifdef DisableExceptions              // Disable exceptions

#define Try {
#define ReThrow Throw()
#define Catch(EXCEPTION) } if (false) {
#define CatchAll } if (false)
#define CatchAndThrow }

inline void Throw() { Terminate(); }
inline void Throw(const Exception&) { Terminate(); }


#endif                                // end of DisableExceptions

#ifndef SimulateExceptions            // ! SimulateExceptions

class Janitor                         // a dummy version
{
public:
   virtual void CleanUp() {}
   Janitor() {}
   virtual ~Janitor() {}
};

#endif                                // end of ! SimulateExceptions


//******************** FREE_CHECK and NEW_DELETE ***********************//

#ifdef DO_FREE_CHECK                          // DO_FREE_CHECK
// Routines for tracing whether new and delete calls are balanced

class FreeCheck;

class FreeCheckLink
{
protected:
   FreeCheckLink* next;
   void* ClassStore;
   FreeCheckLink();
   virtual void Report()=0;                   // print details of link
   friend class FreeCheck;
};

class FCLClass : public FreeCheckLink         // for registering objects
{
   char* ClassName;
   FCLClass(void* t, char* name);
   void Report();
   friend class FreeCheck;
};

class FCLRealArray : public FreeCheckLink     // for registering real arrays
{
   char* Operation;
   int size;
   FCLRealArray(void* t, char* o, int s);
   void Report();
   friend class FreeCheck;
};

class FCLIntArray : public FreeCheckLink     // for registering int arrays
{
   char* Operation;
   int size;
   FCLIntArray(void* t, char* o, int s);
   void Report();
   friend class FreeCheck;
};


class FreeCheck
{
   static FreeCheckLink* next;
   static int BadDelete;
public:
   static void Register(void*, char*);
   static void DeRegister(void*, char*);
   static void RegisterR(void*, char*, int);
   static void DeRegisterR(void*, char*, int);
   static void RegisterI(void*, char*, int);
   static void DeRegisterI(void*, char*, int);
   static void Status();
   friend class FreeCheckLink;
   friend class FCLClass;
   friend class FCLRealArray;
   friend class FCLIntArray;
};

#define FREE_CHECK(Class)                                                  \
public:                                                                    \
   void* operator new(size_t size)                                         \
   {                                                                       \
      void* t = ::operator new(size); FreeCheck::Register(t,#Class);       \
      return t;                                                            \
   }                                                                       \
   void operator delete(void* t)                                           \
   { FreeCheck::DeRegister(t,#Class); ::operator delete(t); }


#ifdef SimulateExceptions         // SimulateExceptions

#define NEW_DELETE(Class)                                                  \
public:                                                                    \
   void* operator new(size_t size)                                         \
   {                                                                       \
      do_not_link=true;                                                    \
      void* t = ::operator new(size); FreeCheck::Register(t,#Class);       \
      return t;                                                            \
   }                                                                       \
   void operator delete(void* t)                                           \
   { FreeCheck::DeRegister(t,#Class); ::operator delete(t); }


#endif                           // end of SimulateExceptions


#define MONITOR_REAL_NEW(Operation, Size, Pointer)                         \
	FreeCheck::RegisterR(Pointer, Operation, Size);
#define MONITOR_INT_NEW(Operation, Size, Pointer)                          \
	FreeCheck::RegisterI(Pointer, Operation, Size);
#define MONITOR_REAL_DELETE(Operation, Size, Pointer)                      \
	FreeCheck::DeRegisterR(Pointer, Operation, Size);
#define MONITOR_INT_DELETE(Operation, Size, Pointer)                       \
	FreeCheck::DeRegisterI(Pointer, Operation, Size);

#else                            // DO_FREE_CHECK not defined

#define FREE_CHECK(Class) public:
#define MONITOR_REAL_NEW(Operation, Size, Pointer) {}
#define MONITOR_INT_NEW(Operation, Size, Pointer) {}
#define MONITOR_REAL_DELETE(Operation, Size, Pointer) {}
#define MONITOR_INT_DELETE(Operation, Size, Pointer) {}


#ifdef SimulateExceptions         // SimulateExceptions


#define NEW_DELETE(Class)                                                  \
public:                                                                    \
	void* operator new(size_t size)                                    \
	{ do_not_link=true; void* t = ::operator new(size); return t; }    \
	void operator delete(void* t) { ::operator delete(t); }

#endif                            // end of SimulateExceptions

#endif                            // end of ! DO_FREE_CHECK

#ifndef SimulateExceptions        // ! SimulateExceptions

#define NEW_DELETE(Class) FREE_CHECK(Class)

#endif                            // end of ! SimulateExceptions


//********************* derived exceptions ******************************//

class Logic_error : public Exception
{
public:
   static unsigned long Select;
   Logic_error(const char* a_what = 0);
};

class Runtime_error : public Exception
{
public:
   static unsigned long Select;
   Runtime_error(const char* a_what = 0);
};

class Domain_error : public Logic_error
{
public:
   static unsigned long Select;
   Domain_error(const char* a_what = 0);
};

class Invalid_argument : public Logic_error
{
public:
   static unsigned long Select;
   Invalid_argument(const char* a_what = 0);
};

class Length_error : public Logic_error
{
public:
   static unsigned long Select;
   Length_error(const char* a_what = 0);
};

class Out_of_range : public Logic_error
{
public:
   static unsigned long Select;
   Out_of_range(const char* a_what = 0);
};

//class Bad_cast : public Logic_error
//{
//public:
//   static unsigned long Select;
//   Bad_cast(const char* a_what = 0);
//};

//class Bad_typeid : public Logic_error
//{
//public:
//   static unsigned long Select;
//   Bad_typeid(const char* a_what = 0);
//};

class Range_error : public Runtime_error
{
public:
   static unsigned long Select;
   Range_error(const char* a_what = 0);
};

class Overflow_error : public Runtime_error
{
public:
   static unsigned long Select;
   Overflow_error(const char* a_what = 0);
};

class Bad_alloc : public Exception
{
public:
   static unsigned long Select;
   Bad_alloc(const char* a_what = 0);
};

#ifdef use_namespace
}
#endif


#endif                            // end of EXCEPTION_LIB


// body file: myexcept.cpp



?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品成人综合| 国产精品一卡二| 国产午夜三级一区二区三| 亚洲成年人网站在线观看| 国产尤物一区二区在线| 欧美日韩夫妻久久| 一区二区视频免费在线观看| 成人动漫一区二区在线| 欧美刺激午夜性久久久久久久| 日韩av电影天堂| 欧美一区二区三区免费大片| 国产成人综合视频| 综合激情网...| 日韩电影网1区2区| 欧美丝袜自拍制服另类| 国产精品另类一区| 综合在线观看色| 亚洲综合久久久久| 日韩经典中文字幕一区| 一区二区三区毛片| 在线观看欧美日本| 亚洲激情av在线| 极品瑜伽女神91| 91在线视频网址| 欧美大尺度电影在线| 欧美国产精品一区二区| 国内精品第一页| 制服丝袜一区二区三区| 亚洲免费观看在线视频| 视频一区欧美日韩| 欧美电影在哪看比较好| 夜夜夜精品看看| 99久久伊人网影院| 一区二区在线观看免费| 91精品国产91热久久久做人人| 久久aⅴ国产欧美74aaa| 欧美岛国在线观看| 国产综合久久久久久鬼色| 国产视频在线观看一区二区三区| 日日欢夜夜爽一区| 日韩亚洲欧美中文三级| 蜜桃免费网站一区二区三区| 精品国产免费人成电影在线观看四季 | 亚洲国产精品激情在线观看| 亚洲图片欧美色图| 在线观看国产精品网站| 亚洲一级不卡视频| 91色乱码一区二区三区| 久久精品视频在线看| 国产精品一区不卡| 免费国产亚洲视频| 欧美精品1区2区3区| 日韩精品电影在线观看| 99天天综合性| 色婷婷久久久久swag精品| 午夜私人影院久久久久| 精品国产乱子伦一区| 欧美曰成人黄网| 成人免费av网站| 久久精品国产99国产精品| 亚洲欧美日韩小说| 中文字幕久久午夜不卡| 日韩免费性生活视频播放| 国产不卡免费视频| 韩国精品免费视频| 亚洲五码中文字幕| 欧美午夜精品一区二区蜜桃 | 亚洲欧美一区二区在线观看| 欧美变态tickle挠乳网站| 欧美在线观看视频一区二区三区| 日本不卡视频在线观看| 亚洲精品成人在线| 国产精品视频一区二区三区不卡| 精品欧美一区二区久久| 久草在线在线精品观看| 成人国产亚洲欧美成人综合网| 国产精品私人影院| 日韩欧美高清一区| 色综合久久综合中文综合网| 国产成人午夜99999| 午夜不卡在线视频| 男女男精品视频| 亚洲视频一区在线| 国产精品久久久久久久久免费丝袜| 欧美日韩国产高清一区二区 | 欧美高清你懂得| 国产成人一级电影| 国产综合成人久久大片91| 成人性生交大片免费看中文| 不卡一卡二卡三乱码免费网站| av资源站一区| 91女厕偷拍女厕偷拍高清| 亚洲精品一区二区三区影院| 欧美天堂一区二区三区| 欧美伊人久久大香线蕉综合69 | 亚洲欧美日韩一区| 亚洲欧美日韩人成在线播放| 日产国产欧美视频一区精品| 亚洲一区二区三区四区在线免费观看| 国产精品一卡二卡在线观看| 成人av集中营| 9191精品国产综合久久久久久| 5858s免费视频成人| 精品久久久久久无| 亚洲大尺度视频在线观看| 成人黄色av电影| 色综合色狠狠综合色| 欧美一级日韩不卡播放免费| 亚洲欧洲综合另类在线| 国产精品久久免费看| gogo大胆日本视频一区| 久久精品一级爱片| 亚洲超丰满肉感bbw| 91在线云播放| 亚洲乱码精品一二三四区日韩在线| 久久99精品国产| 99精品国产热久久91蜜凸| 色噜噜久久综合| 国产校园另类小说区| 国产精品亚洲第一| 欧美国产丝袜视频| 一本到不卡免费一区二区| 亚洲宅男天堂在线观看无病毒| 欧美亚洲图片小说| 国产精品热久久久久夜色精品三区| 日韩电影在线观看网站| 日韩欧美高清dvd碟片| 日韩avvvv在线播放| 欧美经典三级视频一区二区三区| 石原莉奈在线亚洲三区| 欧美在线一二三| 男人的j进女人的j一区| 国产精品日产欧美久久久久| 91老师国产黑色丝袜在线| 亚洲欧洲精品一区二区精品久久久| 国产精品夜夜爽| 婷婷夜色潮精品综合在线| 欧美mv日韩mv亚洲| 经典三级视频一区| 精品国内二区三区| 成人午夜av在线| 久久久久国产一区二区三区四区| 国产乱码字幕精品高清av| 中文字幕国产精品一区二区| 欧美剧情电影在线观看完整版免费励志电影| 亚洲电影第三页| 国产色一区二区| 久久精品在线免费观看| 亚洲网友自拍偷拍| 91国在线观看| 国产一区二区0| 日韩av午夜在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 日韩欧美国产一区二区三区| 欧美日韩国产美| www.亚洲国产| 国产麻豆视频一区| 国产精品一卡二卡| 日韩一区欧美二区| 亚洲国产wwwccc36天堂| 亚洲国产视频网站| 亚洲高清久久久| 中文字幕欧美国产| 久久影音资源网| 久久久久久日产精品| 日韩精品一区二区三区三区免费 | 亚洲专区一二三| 日韩精品欧美精品| 性久久久久久久久久久久| 亚洲一区二区视频| 自拍偷拍国产精品| 国产清纯在线一区二区www| 国产精品入口麻豆九色| 欧美精品一区二区三区蜜臀| 欧美一区永久视频免费观看| 一区二区三区高清不卡| 亚洲桃色在线一区| 亚洲成人综合在线| 国产激情视频一区二区三区欧美| av中文字幕一区| 欧美麻豆精品久久久久久| 日韩免费视频一区| 国产精品久久久久久亚洲毛片| 日韩不卡手机在线v区| 韩国精品免费视频| 欧美亚洲丝袜传媒另类| 久久综合九色综合97_久久久| 国产亚洲精品aa| 日韩va亚洲va欧美va久久| 成人午夜又粗又硬又大| 欧美人体做爰大胆视频| 久久精品夜色噜噜亚洲a∨| 亚洲国产精品久久久久秋霞影院| 亚洲国产成人av网| 久久av资源站| 日韩国产精品大片| 国产夫妻精品视频| 欧美三级中文字| www.久久久久久久久| 国产精品―色哟哟|