पर विचार करें निम्नलिखित कोड फेंकता है:समारोह-गुंजाइश स्थिर वस्तु के निर्माता एक अपवाद
#include <iostream>
struct X{
X(){
throw 0;
}
};
void f(){
static X x;
}
int main(){
try {
f();
}
catch(int) {
std::cout << "Caught first time" << std::endl;
}
try {
f();
}
catch(int) {
std::cout << "Caught second time" << std::endl;
}
}
इस कार्यक्रम का उत्पादन होता है
पकड़ा पहली बार
पकड़ा दूसरी बार
तो, क्या यह मानक द्वारा गारंटीकृत है कि एक स्थिर वस्तु के निर्माता को बार-बार कहा जा रहा है आईएल यह सफलतापूर्वक पूरा हो गया है? मुझे उस मानक में जगह नहीं मिल सकती है जहां इसका उल्लेख किया गया है, इसलिए उद्धरण या अध्याय और कविता का संदर्भ बहुत स्वागत है।
या क्या मेरे उदाहरण में कोई अपरिभाषित व्यवहार शामिल है?
धन्यवाद। अब जब मैं सी ++ के इस आर्केन "फीचर" के बारे में जानता हूं, तो मैं इसका दुरुपयोग करने की कोशिश करूंगा। –
@ एलेक्सेंड्रे सी .: सिंगलटन क्यों नहीं बनाते! –