मैं एक वर्ग की तरह की सोच रहा था:मैं सशर्त रूप से डिफ़ॉल्ट-निर्माता को कैसे परिभाषित कर सकता हूं?
template < typename ...Whatever >
class MyClass
{
public:
static constexpr bool has_default_ctr = Something;
// I want this only if "has_default_ctr" is "true".
MyClass();
//...
};
मुझे नहीं लगता कि मैं एक निर्माता टेम्पलेट है और इस के लिए std::enable_if
उपयोग कर सकते हैं (क्योंकि वहाँ कोई तर्क)। क्या मै गलत हु? यदि नहीं, तो ऐसा करने का कोई और तरीका है?
बस एक त्वरित सोचा - यदि आप एक डिफ़ॉल्ट मान के साथ एक बहस के साथ enable_if' और एक निर्माता का प्रयास किया '? –
क्या आप विस्तारित कर सकते हैं कि आप ऐसा क्यों करना चाहते हैं? –
ठीक है, मैंने ईमानदारी से सोचा कि यह संभव नहीं था, मैं सही जवाब देता हूं और अपना जवाब हटा देता हूं। हालांकि यह एक बड़ा विरोधी पैटर्न नहीं है? – verhage