singleton.c

来自「用于进行gcc测试」· C语言 代码 · 共 40 行

C
40
字号
// { dg-do run  }// This tests two things:// 1. there is an annoying warning.// singleton.C:26: warning: `class singleton' only defines private constructors and has no friends// egcs fails to see that there is a public static accessor function.// 2. the program crashes, because apparently the static variable s in// singleton::instance() is considered constructed although the ctor// exited via an exception. (crash changed to nonzero return here)class singleton {public:       static singleton& instance() {               static singleton s;               return s;       }       int check() {return initialized;}private:       singleton() : initialized(1) {               if ( counter++ == 0 ) throw "just for the heck of it";               initialized = 2;       }       singleton( const singleton& rhs );       void operator=( const singleton& rhs );       int initialized;       static int counter;};  int singleton::counter;int main(){       while (1) {               try {                       return singleton::instance().check()-2;               } catch (...) { }       }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?