इस वैश्विक समारोह स्थिर प्रारंभ असफलता से ग्रस्त कर सकते हैं?
नहीं, ऐसा नहीं होगा। आप सुरक्षित हैं ... :-)
सी ++ मानक प्रारूप (जोर मेरा) का हवाला देते हुए ...
$6.7: 4: स्थिर भंडारण अवधि के साथ एक ब्लॉक गुंजाइश चर के गतिशील प्रारंभ ([बुनियादी .stc.static]) या थ्रेड स्टोरेज अवधि ([basic.stc.thread]) पहली बार नियंत्रण किया जाता है इसकी घोषणा के माध्यम से गुजरता है; इस तरह के चर को माना जाता है जो इसकी प्रारंभिक समाप्ति पर शुरू होता है। यदि प्रारंभिकता अपवाद फेंकने से निकलती है, तो प्रारंभिकता पूर्ण नहीं होती है, इसलिए अगली बार नियंत्रण घोषणा में प्रवेश करने की कोशिश की जाएगी। नियंत्रण समवर्ती घोषणा में प्रवेश करती है जबकि चर प्रारंभ किया जा रहा है, समवर्ती निष्पादन आरंभीकरण पूरा करने के लिए
भी इंतजार करेगा, देखें: Static local variables
अपने कार्य एक समारोह टेम्पलेट template <typename TFn>
है के बाद से , प्रत्येक अलग तत्काल (TFn
का प्रतिस्थापन), static const unsigned int NThread = std::thread::hardware_concurrency();
का मूल्यांकन किया जाएगा
असंबद्ध नाइटपिक: ध्यान दें कि प्रत्येक एनटीएचड चर प्रत्येक डिस्टिन के लिए मौजूद होगा फ़ंक्शन टेम्पलेट का सीटी तत्कालता। – rubenvb