this question का उत्तर देने के बाद और मानक पेपर में एक संतोषजनक उत्तर नहीं मिला, मैंने सोचना शुरू कर दिया। मानक निम्नलिखित w.r.t. बताता है उल्लेख चर का प्रारंभ:क्या ब्लॉक-स्कोप स्थिर या थ्रेड स्टोरेज अवधि चर के अंडरस्पेस्फीड के असफल प्रारंभ में गठित किया गया है?
§6.7 [stmt.dcl] p4
[...] नहीं तो इस तरह के एक चर आरंभ नहीं हो जाता पहली बार नियंत्रण अपनी घोषणा से होकर गुजरता है; इस तरह के चर को प्रारंभिकरण के पूरा होने पर प्रारंभ माना जाता है। यदि प्रारंभिक अपवाद फेंकने से निकलता है, तो प्रारंभिकता पूर्ण नहीं होती है, इसलिए अगली बार नियंत्रण घोषणा में प्रवेश करने की कोशिश की जाएगी।
कारण हो सकता है क्या हुआ अगर यह एक अपवाद फेंकने की तुलना में कुछ और से विफल रहा है (longjmp()
, thead बाहर निकलें, संकेत कुछ नाम हैं) प्रारंभ पुनः प्रयास किया जाना का कोई उल्लेख नहीं है।
क्या मैंने मानक में कुछ भी नजरअंदाज किया? मैंने शुरुआतीकरण, घोषणा और अपवाद खंडों को देखा और यहां तक कि "स्थिर" की त्वरित खोज के साथ CWG defects table of content से परामर्श लिया, लेकिन इससे संबंधित कुछ भी नहीं मिला।
क्या यह मानक में एक अंडरस्पेसिफिकेशन (और इस तरह के दोष के रूप में) है?
क्या सी ++ सिग्नल से संबंधित _anything_ परिभाषित करता है? या 'longjmp'? थ्रेड निकास चीजों को बदल सकता है। –
क्या आपके पास कोई ठोस परिदृश्य है कि आपको मानक द्वारा पर्याप्त रूप से निर्दिष्ट नहीं किया गया है? –
@ केरेक: लिंक किया गया प्रश्न। : पी – Xeo