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

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

?? myexcept.cpp

?? 這是cdma2000的一個(gè)分組調(diào)度算法實(shí)例
?? CPP
字號(hào):
//$$myexcept.cpp                        Exception handler

// Copyright (C) 1993,4,6: R B Davies


#define WANT_STREAM                    // include.h will get stream fns

#include <string.h>                    // C string library

#include "Include.h"                   // include standard files
#include "boolean.h"


#include "myexcept.h"                  // for exception handling

#ifdef use_namespace
namespace RBD_COMMON {
#endif


//#define REG_DEREG                    // for print out uses of new/delete
//#define CLEAN_LIST                   // to print entries being added to
                                       // or deleted from cleanup list

#ifdef SimulateExceptions

void Throw()
{
   for (Janitor* jan = JumpBase::jl->janitor; jan; jan = jan->NextJanitor)
      jan->CleanUp();
   JumpItem* jx = JumpBase::jl->ji;    // previous jumpbase;
   if ( !jx ) { Terminate(); }         // jl was initial JumpItem
   JumpBase::jl = jx;                  // drop down a level; cannot be in front
                                       // of previous line
   Tracer::last = JumpBase::jl->trace;
   longjmp(JumpBase::jl->env, 1);
}

#endif                                 // end of simulate exceptions


unsigned long Exception::Select;
char* Exception::what_error;
int Exception::SoFar;
int Exception::LastOne;

Exception::Exception(const char* a_what)
{
   Select++; SoFar = 0;
   if (!what_error)                   // make space for exception message
   {
      LastOne = 511;
      what_error = new char[512];
      if (!what_error)                // fail to make space
      {
         LastOne = 0;
         what_error = "No heap space for exception message\n";
      }
   }
   AddMessage("\n\nAn exception has been thrown\n");
   AddMessage(a_what);
   if (a_what) Tracer::AddTrace();
}

void Exception::AddMessage(const char* a_what)
{
   if (a_what)
   {
      int l = strlen(a_what); int r = LastOne - SoFar;
      if (l < r) { strcpy(what_error+SoFar, a_what); SoFar += l; }
      else if (r > 0)
      {
         strncpy(what_error+SoFar, a_what, r);
         what_error[LastOne] = 0;
         SoFar = LastOne;
      }
   }
}

void Exception::AddInt(int value)
{
   bool negative;
   if (value == 0) { AddMessage("0"); return; }
   else if (value < 0) { value = -value; negative = true; }
   else negative = false;
   int n = 0; int v = value;        // how many digits will we need?
   while (v > 0) { v /= 10; n++; }
   if (negative) n++;
   if (LastOne-SoFar < n) { AddMessage("***"); return; }

   SoFar += n; n = SoFar; what_error[n] = 0;
   while (value > 0)
   {
      int nv = value / 10; int rm = value - nv * 10;  value = nv;
      what_error[--n] = (char)(rm + '0');
   }
   if (negative) what_error[--n] = '-';
   return;
}

void Tracer::PrintTrace()
{
   cout << "\n";
   for (Tracer* et = last; et; et=et->previous)
      cout << "  * " << et->entry << "\n";
}

void Tracer::AddTrace()
{
   if (last)
   {
      Exception::AddMessage("Trace: ");
      Exception::AddMessage(last->entry);
      for (Tracer* et = last->previous; et; et=et->previous)
      {
         Exception::AddMessage("; ");
         Exception::AddMessage(et->entry);
      }
      Exception::AddMessage(".\n");
   }
}

#ifdef SimulateExceptions


Janitor::Janitor()
{
   if (do_not_link)
   {
      do_not_link = false; NextJanitor = 0; OnStack = false;
#ifdef CLEAN_LIST
      cout << "Not added to clean-list " << (unsigned long)this << "\n";
#endif
   }
   else
   {
      OnStack = true;
#ifdef CLEAN_LIST
      cout << "Add to       clean-list " << (unsigned long)this << "\n";
#endif
      NextJanitor = JumpBase::jl->janitor; JumpBase::jl->janitor=this;
   }
}

Janitor::~Janitor()
{
   // expect the item to be deleted to be first on list
   // but must be prepared to search list
   if (OnStack)
   {
#ifdef CLEAN_LIST
      cout << "Delete from  clean-list " << (unsigned long)this << "\n";
#endif
      Janitor* lastjan = JumpBase::jl->janitor;
      if (this == lastjan) JumpBase::jl->janitor = NextJanitor;
      else
      {
	 for (Janitor* jan = lastjan->NextJanitor; jan;
	    jan = lastjan->NextJanitor)
	 {
	    if (jan==this)
	       { lastjan->NextJanitor = jan->NextJanitor; return; }
	    lastjan=jan;
	 }

	 Throw(Exception(
"Cannot resolve memory linked list\nSee notes in myexcept.cpp for details\n"
         ));


// This message occurs when a call to ~Janitor() occurs, apparently
// without a corresponding call to Janitor(). This could happen if my
// way of deciding whether a constructor is being called by new
// fails.

// It may happen if you are using my simulated exceptions and also have
// your compiler s exceptions turned on.

// It can also happen if you have a class derived from Janitor
// which does not include a copy constructor [ eg X(const &X) ].
// Possibly also if delete is applied an object on the stack (ie not
// called by new). Otherwise, it is a bug in myexcept or your compiler.
// If you do not #define TEMPS_DESTROYED_QUICKLY you will get this
// error with Microsoft C 7.0. There are probably situations where
// you will get this when you do define TEMPS_DESTROYED_QUICKLY. This
// is a bug in MSC. Beware of "operator" statements for defining
// conversions; particularly for converting from a Base class to a
// Derived class.

// You may get away with simply deleting this error message and Throw
// statement if you can not find a better way of overcoming the
// problem. In any case please tell me if you get this error message,
// particularly for compilers apart from Microsoft C 7.0.


      }
   }
}

JumpItem* JumpBase::jl;              // will be set to zero
jmp_buf JumpBase::env;
bool Janitor::do_not_link;           // will be set to false


int JanitorInitializer::ref_count;

JanitorInitializer::JanitorInitializer()
{
   if (ref_count++ == 0) new JumpItem;
                                    // need JumpItem at head of list
}

#endif                              // end of SimulateExceptions

Tracer* Tracer::last;               // will be set to zero


void Terminate()
{
   cout << "\n\nThere has been an exception with no handler - exiting";
   const char* what = Exception::what();
   if (what) cout << what << "\n";
   exit(1);
}



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

FreeCheckLink::FreeCheckLink() : next(FreeCheck::next)
   { FreeCheck::next = this; }

FCLClass::FCLClass(void* t, char* name) : ClassName(name) { ClassStore=t; }

FCLRealArray::FCLRealArray(void* t, char* o, int s)
  : Operation(o), size(s) { ClassStore=t; }

FCLIntArray::FCLIntArray(void* t, char* o, int s)
  : Operation(o), size(s) { ClassStore=t; }

FreeCheckLink* FreeCheck::next;
int FreeCheck::BadDelete;

void FCLClass::Report()
{ cout << "   " << ClassName << "   " << (unsigned long)ClassStore << "\n"; }

void FCLRealArray::Report()
{
   cout << "   " << Operation << "   " << (unsigned long)ClassStore <<
      "   " << size << "\n";
}

void FCLIntArray::Report()
{
   cout << "   " << Operation << "   " << (unsigned long)ClassStore <<
      "   " << size << "\n";
}

void FreeCheck::Register(void* t, char* name)
{
   FCLClass* f = new FCLClass(t,name);
   if (!f) { cout << "Out of memory in FreeCheck\n"; exit(1); }
#ifdef REG_DEREG
   cout << "Registering   " << name << "   " << (unsigned long)t << "\n";
#endif
}

void FreeCheck::RegisterR(void* t, char* o, int s)
{
   FCLRealArray* f = new FCLRealArray(t,o,s);
   if (!f) { cout << "Out of memory in FreeCheck\n"; exit(1); }
#ifdef REG_DEREG
   cout << o << "   " << s << "   " << (unsigned long)t << "\n";
#endif
}

void FreeCheck::RegisterI(void* t, char* o, int s)
{
   FCLIntArray* f = new FCLIntArray(t,o,s);
   if (!f) { cout << "Out of memory in FreeCheck\n"; exit(1); }
#ifdef REG_DEREG
   cout << o << "   " << s << "   " << (unsigned long)t << "\n";
#endif
}

void FreeCheck::DeRegister(void* t, char* name)
{
   FreeCheckLink* last = 0;
#ifdef REG_DEREG
   cout << "Deregistering " << name << "   " << (unsigned long)t << "\n";
#endif
   for (FreeCheckLink* fcl = next; fcl; fcl = fcl->next)
   {
      if (fcl->ClassStore==t)
      {
	 if (last) last->next = fcl->next; else next = fcl->next;
	 delete fcl; return;
      }
      last = fcl;
   }
   cout << "\nRequest to delete non-existent object of class and location:\n";
   cout << "   " << name << "   " << (unsigned long)t << "\n";
   BadDelete++;
   Tracer::PrintTrace();
   cout << "\n";
}

void FreeCheck::DeRegisterR(void* t, char* o, int s)
{
   FreeCheckLink* last = 0;
#ifdef REG_DEREG
   cout << o << "   " << s << "   " << (unsigned long)t << "\n";
#endif
   for (FreeCheckLink* fcl = next; fcl; fcl = fcl->next)
   {
      if (fcl->ClassStore==t)
      {
	 if (last) last->next = fcl->next; else next = fcl->next;
	 if (s >= 0 && ((FCLRealArray*)fcl)->size != s)
	 {
	    cout << "\nArray sizes do not agree:\n";
	    cout << "   " << o << "   " << (unsigned long)t
	       << "   " << ((FCLRealArray*)fcl)->size << "   " << s << "\n";
	    Tracer::PrintTrace();
	    cout << "\n";
	 }
	 delete fcl; return;
      }
      last = fcl;
   }
   cout << "\nRequest to delete non-existent real array:\n";
   cout << "   " << o << "   " << (unsigned long)t << "   " << s << "\n";
   BadDelete++;
   Tracer::PrintTrace();
   cout << "\n";
}

void FreeCheck::DeRegisterI(void* t, char* o, int s)
{
   FreeCheckLink* last = 0;
#ifdef REG_DEREG
   cout << o << "   " << s << "   " << (unsigned long)t << "\n";
#endif
   for (FreeCheckLink* fcl = next; fcl; fcl = fcl->next)
   {
      if (fcl->ClassStore==t)
      {
	 if (last) last->next = fcl->next; else next = fcl->next;
	 if (s >= 0 && ((FCLIntArray*)fcl)->size != s)
	 {
	    cout << "\nArray sizes do not agree:\n";
	    cout << "   " << o << "   " << (unsigned long)t
	       << "   " << ((FCLIntArray*)fcl)->size << "   " << s << "\n";
	    Tracer::PrintTrace();
	    cout << "\n";
	 }
	 delete fcl; return;
      }
      last = fcl;
   }
   cout << "\nRequest to delete non-existent int array:\n";
   cout << "   " << o << "   " << (unsigned long)t << "   " << s << "\n";
   BadDelete++;
   Tracer::PrintTrace();
   cout << "\n";
}

void FreeCheck::Status()
{
   if (next)
   {
      cout << "\nObjects of the following classes remain undeleted:\n";
      for (FreeCheckLink* fcl = next; fcl; fcl = fcl->next) fcl->Report();
      cout << "\n";
   }
   else cout << "\nNo objects remain undeleted\n\n";
   if (BadDelete)
   {
      cout << "\nThere were " << BadDelete << 
         " requests to delete non-existent items\n\n";
   }
}

#endif                            // end of DO_FREE_CHECK

// derived exception bodies

Logic_error::Logic_error(const char* a_what) : Exception()
{
   Select = Exception::Select;
   AddMessage("Logic error:- "); AddMessage(a_what);
   if (a_what) Tracer::AddTrace();
}

Runtime_error::Runtime_error(const char* a_what)
   : Exception()
{
   Select = Exception::Select;
   AddMessage("Runtime error:- "); AddMessage(a_what);
   if (a_what) Tracer::AddTrace();
}

Domain_error::Domain_error(const char* a_what) : Logic_error()
{
   Select = Exception::Select;
   AddMessage("domain error\n"); AddMessage(a_what);
   if (a_what) Tracer::AddTrace();
}

Invalid_argument::Invalid_argument(const char* a_what) : Logic_error()
{
   Select = Exception::Select;
   AddMessage("invalid argument\n"); AddMessage(a_what);
   if (a_what) Tracer::AddTrace();
}

Length_error::Length_error(const char* a_what) : Logic_error()
{
   Select = Exception::Select;
   AddMessage("length error\n"); AddMessage(a_what);
   if (a_what) Tracer::AddTrace();
}

Out_of_range::Out_of_range(const char* a_what) : Logic_error()
{
   Select = Exception::Select;
   AddMessage("out of range\n"); AddMessage(a_what);
   if (a_what) Tracer::AddTrace();
}

Bad_cast::Bad_cast(const char* a_what) : Logic_error()
{
   Select = Exception::Select;
   AddMessage("bad cast\n"); AddMessage(a_what);
   if (a_what) Tracer::AddTrace();
}

Bad_typeid::Bad_typeid(const char* a_what) : Logic_error()
{
   Select = Exception::Select;
   AddMessage("bad type id.\n"); AddMessage(a_what);
   if (a_what) Tracer::AddTrace();
}

Range_error::Range_error(const char* a_what) : Runtime_error()
{
   Select = Exception::Select;
   AddMessage("range error\n"); AddMessage(a_what);
   if (a_what) Tracer::AddTrace();
}

Overflow_error::Overflow_error(const char* a_what) : Runtime_error()
{
   Select = Exception::Select;
   AddMessage("overflow error\n"); AddMessage(a_what);
   if (a_what) Tracer::AddTrace();
}

Bad_alloc::Bad_alloc(const char* a_what) : Exception()
{
   Select = Exception::Select;
   AddMessage("bad allocation\n"); AddMessage(a_what);
   if (a_what) Tracer::AddTrace();
}




unsigned long Logic_error::Select;
unsigned long Runtime_error::Select;
unsigned long Domain_error::Select;
unsigned long Invalid_argument::Select;
unsigned long Length_error::Select;
unsigned long Out_of_range::Select;
unsigned long Bad_cast::Select;
unsigned long Bad_typeid::Select;
unsigned long Range_error::Select;
unsigned long Overflow_error::Select;
unsigned long Bad_alloc::Select;

#ifdef use_namespace
}
#endif


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频资源站| 亚洲一区在线免费观看| 欧洲视频一区二区| 91在线观看视频| a级精品国产片在线观看| 国产成人av电影在线观看| 久久精品国产精品亚洲精品| 奇米一区二区三区av| 另类小说一区二区三区| 青娱乐精品在线视频| 久久99精品久久久久久动态图| 日韩av电影天堂| 麻豆视频一区二区| 国产精品18久久久久久久久| 国产精品18久久久久| 成人精品小蝌蚪| 色综合天天综合色综合av| 色一区在线观看| 欧美综合一区二区三区| 91精品在线一区二区| 精品国产sm最大网站免费看 | 精品免费99久久| 久久综合久久鬼色中文字| 国产女同性恋一区二区| 亚洲天堂福利av| 日韩成人av影视| 国产91综合一区在线观看| 91同城在线观看| 欧美一级二级在线观看| 国产欧美一区二区精品性色| 综合激情网...| 免费成人美女在线观看| heyzo一本久久综合| 91精品国产色综合久久不卡蜜臀 | 国产一区二区福利视频| 99久久免费精品| 日韩一区国产二区欧美三区| 国产欧美一区二区精品仙草咪 | 午夜成人免费视频| 国产成人精品免费视频网站| 欧美日韩综合在线| 国产欧美中文在线| 婷婷夜色潮精品综合在线| 国产精品123| 欧美一二三四区在线| 国产精品不卡在线| 精品一区二区三区视频| 欧美影视一区二区三区| 久久伊99综合婷婷久久伊| 亚洲图片欧美激情| 国产成人免费在线| 日韩女优毛片在线| 亚洲成人黄色影院| 99久久久久久99| 久久久久久久久久久久久女国产乱| 亚洲黄色免费网站| 9l国产精品久久久久麻豆| 欧美v亚洲v综合ⅴ国产v| 亚洲成人自拍偷拍| 一本色道**综合亚洲精品蜜桃冫| 日韩欧美久久一区| 日产国产高清一区二区三区| 91论坛在线播放| 亚洲欧美一区二区在线观看| 国产一区二区不卡| 精品99一区二区| 麻豆中文一区二区| 欧美一区二区三区人| 亚洲超丰满肉感bbw| 91久久精品一区二区三区| 国产精品女主播在线观看| 国产精品资源在线| 2017欧美狠狠色| 国产酒店精品激情| 欧美激情中文字幕| 国产精品99久久久| 中国色在线观看另类| 国产精品18久久久久久久久久久久| 欧美白人最猛性xxxxx69交| 久久国产精品免费| 国产午夜精品一区二区| 国产福利91精品一区二区三区| 日韩欧美国产成人一区二区| 美日韩一区二区| 亚洲精品在线三区| 国产精品一区二区视频| 亚洲国产高清在线观看视频| 成人午夜电影久久影院| 国产精品久久久久久久久快鸭| www.在线欧美| 亚洲综合色婷婷| 欧美久久一二三四区| 久久se精品一区精品二区| 久久天天做天天爱综合色| 粉嫩绯色av一区二区在线观看| 国产欧美日本一区二区三区| 波多野结衣在线一区| 亚洲精品久久嫩草网站秘色| 欧美人狂配大交3d怪物一区| 美腿丝袜亚洲三区| 国产精品久久久久久户外露出| 在线一区二区三区四区五区| 天天综合色天天综合色h| 欧美tickle裸体挠脚心vk| 国产suv精品一区二区6| 亚洲愉拍自拍另类高清精品| 日韩欧美亚洲国产精品字幕久久久| 国产一区二区福利| 亚洲一级二级在线| 久久综合色之久久综合| 91麻豆国产精品久久| 美国毛片一区二区三区| 日韩伦理免费电影| 欧美刺激午夜性久久久久久久| 成人综合在线网站| 日韩国产欧美在线播放| 国产精品免费看片| 91麻豆精品国产无毒不卡在线观看| 国产高清在线观看免费不卡| 亚洲国产精品天堂| 亚洲国产高清在线| 欧美videossexotv100| 色美美综合视频| 高潮精品一区videoshd| 蜜桃av一区二区三区电影| 亚洲美女偷拍久久| 久久精品亚洲一区二区三区浴池| 欧美视频一区二区三区在线观看| 国产麻豆精品在线观看| 日韩国产一区二| 夜夜嗨av一区二区三区中文字幕 | 成人免费av网站| 麻豆国产精品视频| 视频一区欧美精品| 亚洲精品日韩专区silk| 免费高清视频精品| 亚洲一区日韩精品中文字幕| 国产精品青草久久| 中文字幕乱码一区二区免费| 精品av久久707| 日韩免费高清电影| 日韩午夜av一区| 欧美电影一区二区| 欧洲中文字幕精品| 91成人在线精品| 99re热这里只有精品视频| 高清国产午夜精品久久久久久| 伦理电影国产精品| 狠狠狠色丁香婷婷综合久久五月| 亚洲福利一区二区| 香蕉加勒比综合久久 | 欧美区一区二区三区| 在线看不卡av| 欧美三级日韩三级国产三级| 在线视频你懂得一区| 91成人免费在线视频| 色婷婷精品大在线视频| 在线亚洲+欧美+日本专区| 在线观看91精品国产入口| 欧美性大战久久久| 欧美疯狂性受xxxxx喷水图片| 精品视频全国免费看| 777奇米四色成人影色区| 在线电影一区二区三区| 日韩欧美一级精品久久| 亚洲精品一区二区三区精华液 | 精品久久久久久亚洲综合网| 欧美一二三四区在线| 精品国产一区二区三区久久影院| 欧美成人三级在线| 国产欧美精品一区| 亚洲精品伦理在线| 免费一级欧美片在线观看| 欧美日韩高清一区| 精品国产成人系列| 国产精品久久久久影院| 亚洲一区二区欧美| 韩国成人福利片在线播放| 成人污视频在线观看| 色婷婷av一区二区三区gif| 欧美理论片在线| 精品国精品国产尤物美女| 亚洲欧洲精品一区二区精品久久久| 亚洲午夜日本在线观看| 免费高清在线一区| 91小视频免费看| 日韩午夜中文字幕| 国产精品毛片a∨一区二区三区| 一区二区三区不卡视频| 久久er99热精品一区二区| 成人app软件下载大全免费| 欧美日本高清视频在线观看| 国产三级三级三级精品8ⅰ区| 亚洲一区影音先锋| 国产成人啪免费观看软件 | 日日摸夜夜添夜夜添国产精品| 国模大尺度一区二区三区| 欧洲一区在线电影| 亚洲国产精品传媒在线观看| 日本aⅴ免费视频一区二区三区 |