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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? myexcept.h

?? VC環境下的實用的復數庫函數,編譯后可作為庫函數使用.
?? H
字號:
//$$ 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 BaseException, 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 = BaseException::Select;
//
//   For each exceptions class, EX_1, some .cpp file must include
//
//      unsigned long EX_1::Select;
//


#ifndef EXCEPTION_LIB
#define EXCEPTION_LIB

#include "include.h"

#ifdef use_namespace
namespace RBD_COMMON {
#endif


void Terminate();


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

class BaseException;

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


class BaseException                          // 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
   BaseException(const char* a_what = 0);
   static const char* what() { return what_error; }
                                         // for getting error message
};

#ifdef TypeDefException
typedef BaseException Exception;        // for compatibility with my older libraries
#endif

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 BaseException&) { Throw(); }

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

#define ReThrow Throw()

#define Catch(EXCEPTION)                                \
   } else if (BaseException::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 BaseException&) { 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 BaseException
{
public:
   static unsigned long Select;
   Logic_error(const char* a_what = 0);
};

class Runtime_error : public BaseException
{
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 BaseException
{
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



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区三区av性色| 欧美老肥妇做.爰bbww视频| 婷婷国产在线综合| 亚洲成人福利片| 亚洲一区在线电影| 午夜精彩视频在线观看不卡| 香蕉加勒比综合久久| 亚洲3atv精品一区二区三区| 日韩精品免费视频人成| 日本欧美一区二区在线观看| 久久国产免费看| 国产成人午夜片在线观看高清观看| 激情五月播播久久久精品| 国产精品羞羞答答xxdd| 成人动漫视频在线| 91国产成人在线| 欧美日韩一区二区三区在线| 日韩精品一区二区三区三区免费| 欧美精品一区二区三区一线天视频| 国产亚洲人成网站| 中文字幕在线播放不卡一区| 亚洲丶国产丶欧美一区二区三区| 日本aⅴ精品一区二区三区| 国产一区二区精品久久99| 福利一区二区在线| 色婷婷亚洲综合| 日韩三级免费观看| 中文字幕视频一区二区三区久| 亚洲国产精品欧美一二99| 国产一区二区三区黄视频 | 精品国内片67194| 中文字幕成人在线观看| 亚洲综合视频在线| 九九视频精品免费| 色猫猫国产区一区二在线视频| 91精品婷婷国产综合久久性色| 久久免费的精品国产v∧| 一区二区视频免费在线观看| 免费高清成人在线| 色综合久久中文综合久久97| 欧美成人精品1314www| 洋洋av久久久久久久一区| 久久97超碰国产精品超碰| 在线免费亚洲电影| 国产视频视频一区| 婷婷综合五月天| www.欧美.com| 精品久久久久久久久久久久包黑料| 亚洲女与黑人做爰| 粉嫩嫩av羞羞动漫久久久 | 免费看精品久久片| 日本成人中文字幕| 天堂va蜜桃一区二区三区漫画版| 国产精品亚洲一区二区三区妖精| 欧美日韩国产综合久久| 国产精品传媒入口麻豆| 国精产品一区一区三区mba视频| 欧美日本在线看| 一区二区三区日韩在线观看| 成人黄色在线网站| 久久精品亚洲乱码伦伦中文| 久久精品999| 91精品国产免费| 视频一区中文字幕| 欧美日韩三级一区| 亚洲成人一二三| 欧美亚洲动漫精品| 亚洲国产精品久久不卡毛片 | 日韩一区二区免费在线观看| 亚洲午夜成aⅴ人片| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品卡一卡二卡三| 国产99一区视频免费| 久久精品网站免费观看| 国产精一区二区三区| 久久蜜桃av一区二区天堂 | 一区二区三区在线视频观看| 粉嫩绯色av一区二区在线观看 | 亚洲男同性视频| 99国产麻豆精品| 亚洲欧美一区二区视频| 成人国产精品免费观看动漫| 国产精品大尺度| 在线亚洲欧美专区二区| 亚洲影视在线播放| 欧美年轻男男videosbes| 日本最新不卡在线| 精品剧情v国产在线观看在线| 国内外成人在线视频| 国产欧美一区二区精品性| www.亚洲在线| 夜夜精品浪潮av一区二区三区| 在线观看www91| 免费观看在线色综合| 精品国产电影一区二区| 成人激情动漫在线观看| 亚洲在线视频一区| 日韩一区二区三区在线| 国产91高潮流白浆在线麻豆| 中文字幕亚洲成人| 91精品在线一区二区| 国产高清成人在线| 亚洲乱码国产乱码精品精小说| 7777精品久久久大香线蕉| 国产精品一二三四五| 亚洲麻豆国产自偷在线| 精品久久一二三区| 日本大香伊一区二区三区| 蜜臀av在线播放一区二区三区| 国产精品日日摸夜夜摸av| 欧美一区二区在线播放| 99精品国产热久久91蜜凸| 石原莉奈在线亚洲二区| 亚洲国产精品99久久久久久久久| 欧美专区亚洲专区| 丁香五精品蜜臀久久久久99网站| 夜色激情一区二区| 日本一区二区免费在线观看视频| 欧美三级日韩三级| 成人午夜精品在线| 久国产精品韩国三级视频| 一区二区三区欧美视频| 日本一区二区三区视频视频| 欧美电影免费观看高清完整版在| 99re视频精品| 国产精品一线二线三线| 日韩电影免费在线看| 亚洲综合一二三区| 欧美激情一区二区三区四区| 日韩精品一区二区三区四区视频| 在线这里只有精品| 成人综合在线网站| 国产黄人亚洲片| 亚洲国产精品成人综合色在线婷婷| 欧美xxxx在线观看| 日韩欧美国产不卡| 欧美日韩中文精品| 色屁屁一区二区| 91丨九色丨国产丨porny| 国产福利一区二区三区视频| 美女任你摸久久| 美腿丝袜亚洲一区| 日韩和欧美一区二区| 性久久久久久久久久久久| 亚洲一区精品在线| 亚洲精品videosex极品| 最新成人av在线| 国产精品久久福利| 加勒比av一区二区| 蜜臀精品一区二区三区在线观看 | 日韩精品中文字幕在线不卡尤物| 欧美精品在线一区二区三区| 91福利资源站| 欧美日韩激情在线| 欧美一级二级三级乱码| 日韩一区二区高清| 26uuu另类欧美亚洲曰本| 日韩精品最新网址| 国产日产欧美一区二区视频| 国产三级精品视频| 成人欧美一区二区三区1314| 最新国产の精品合集bt伙计| 亚洲一区免费视频| 蜜桃一区二区三区在线| 国产精品白丝av| 成人看片黄a免费看在线| 99精品偷自拍| 欧美日免费三级在线| 日韩免费成人网| 国产精品美女久久久久aⅴ| 亚洲欧美日韩国产综合在线| 亚洲sss视频在线视频| 久久精品国内一区二区三区| 粉嫩aⅴ一区二区三区四区五区| 99国内精品久久| 91精品国产入口| 国产午夜精品久久久久久久| 亚洲人成影院在线观看| 日韩国产欧美在线视频| 国产不卡免费视频| 欧美亚男人的天堂| 久久精品视频在线看| 一区二区三区四区视频精品免费| 三级影片在线观看欧美日韩一区二区| 精品一二线国产| 在线观看网站黄不卡| 精品三级在线看| 最近日韩中文字幕| 久久97超碰国产精品超碰| 91网址在线看| 欧美成人精品高清在线播放| 亚洲欧美日韩中文字幕一区二区三区| 蜜臀久久99精品久久久久宅男| 成人激情av网| 欧美精品一区二区三| 亚洲激情五月婷婷| 国产精品一区二区你懂的| 欧美日韩国产影片| 国产精品视频你懂的| 久久精品国产成人一区二区三区|