singleton.c
来自「Mac OS X 10.4.9 for x86 Source Code 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 + -
显示快捷键?