मैं व्युत्पन्न प्रकार के static constexpr
को रखने के लिए एक सीआरटीपी लिखने की कोशिश कर रहा हूं, क्योंकि यह केवल एक वर्ग के साथ असंभव है। यह कोड जीसीसी में ठीक संकलित करता है, लेकिन क्लैंग शिकायत करता है कि Derived
एक अधूरा प्रकार है। कौनसा सही हैं?क्या एक क्लास परिभाषा पूर्ण है जब इसे बेस क्लास में पास किया जाता है?
template<class T>
class Base {
public:
static constexpr T a = T(1), b = T(20);
};
class Derived : public Base<Derived> {
public:
int x;
constexpr Derived(int x) : x(x) {}
};
व्युत्पन्न के कन्स्ट्रक्टर पर स्थानीय चर एक्स और सावधान रहें, सदस्य का नाम – Brahim
है, मैं बस यह इंगित करना चाहता हूं कि बेस क्लास के अंदर स्थैतिक वस्तुओं को स्थिर रखना सबसे अच्छा विचार नहीं है .. –
ऐसा करने का एकमात्र कारण इस तरह से है क्योंकि मैं 'व्युत्पन्न' प्रकार के 'स्थिर कंटेनर' को 'व्युत्पन्न' में नहीं डाल सकता। मैं ऐसा करने में सक्षम होना चाहता था: 'व्युत्पन्न :: ए' जैसे' व्युत्पन्न :: स्थिर 'जैसे कुछ। – user975989