documentation page का कहना है कि std::is_default_constructible<T>
के लिए:
टी होगा एक पूर्ण प्रकार, (संभवतः सीवी-योग्य) शून्य, या अज्ञात बाध्य की सरणी। अन्यथा, व्यवहार अपरिभाषित है।
चूंकि आप अपनी कक्षा में हैं, इसलिए अभी तक पूरी तरह से परिभाषित नहीं किया गया है, मुझे लगता है कि अंतर का कारण है।
पक्ष प्रश्न का सवाल है, इस विशेषता जिसका अर्थ है कि यदि चर परिभाषा
T obj();
है well formed सदस्य लगातार value
बराबर true
करने लगता है std::is_constructible
के आधार पर किया जा रहा है। अन्य सभी मामलों में, value
false
है।
तो मेरी और मेरी स्पष्ट नाम आधारित अर्थात् वृत्ति की मेरी समझ यह कहती है कि डिफ़ॉल्ट कन्स्ट्रक्टर निजी होने पर यह विफल होना चाहिए।
इस स्थिति के लिए कामकाज उस वर्ग के कुछ सदस्य विधि के अंदर इस 'static_assert' को घेरना है। क्या मानक से कोई संदर्भ भी है? बीटीडब्लू, * अज्ञात बाध्य * * का अर्थ क्या है? - आप पूर्णता के लिए "साइड क्यूएन" पर भी प्रतिक्रिया दे सकते हैं। – iammilind
@iammilind साइड प्रश्न उत्तर के साथ अपडेट किया गया है, अज्ञात बाध्य की एक सरणी भी है जब आप ब्रैकेट्स -> 'char array [];' के बीच कोई संख्या नहीं डालते हैं। अधिकांश समय cppreference मानक उद्धरण/rephrase, लेकिन हाँ, आपको हमेशा सुरक्षा के लिए मूल स्रोत की जांच करनी चाहिए, हालांकि मेरे पास अभी इसकी एक सुलभ प्रति नहीं है। – Drax