📄 singleton.c
字号:
// { 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -