इस उदाहरण में:उपयोग-घोषणा में, निर्भर नाम टेम्पलेट प्रतिस्थापन के बाद रचनाकारों को प्रस्तुत कर सकते हैं?
template<class T>
struct S : T
{
using T::X;
};
T::X
एक आश्रित ऐसा नाम है जो सदस्य T
में X
को संदर्भित करता है। हैं S<T>
T = X
साथ instantiated है:
struct X
{
X(int) {}
};
...
S<X> s(42);
का उपयोग कर-घोषणा इनहेरिट-निर्माता बन जाएगा?
क्लैंग DEMO कोड को अस्वीकार करता है, जबकि g ++ इसे स्वीकार करता है।
ध्यान दें कि अगर हम लिखें:
using T::X::X;
दोनों compilers कोड को स्वीकार करने और विरासत-निर्माता के रूप में मानते हैं। using T::X
मानक द्वारा विरासत-निर्माता बनने की अनुमति है?
देखें [मूल मुद्दा 2070] (https://wg21.link/CWG2070)। –
बहुत बहुत धन्यवाद, उत्तर अपडेट किया गया। – OmnipotentEntity