मैं इस उदाहरण में, एक व्युत्पन्न वर्ग में एक टेम्प्लेटेड आधार वर्ग के सदस्य चर का उपयोग करने के कोशिश कर रहा हूँ:का उपयोग करते हुए सदस्य चर एक टेम्प्लेटेड आधार वर्ग (C++) से विरासत में मिली
template <class dtype>
struct A {
int x;
};
template <class dtype>
struct B : public A<dtype> {
void test() {
int id1 = this->x; // always works
int id2 = A<dtype>::x; // always works
int id3 = B::x; // always works
int id4 = x; // fails in gcc & clang, works in icc and xlc
}
};
जीसीसी और बजना दोनों कर रहे हैं इस चर का उपयोग करने के बारे में बहुत पसंद है, और इसके लिए एक स्पष्ट दायरा या "इस" के स्पष्ट उपयोग की आवश्यकता है। कुछ अन्य कंपाइलर्स (एक्सएलसी और आईसीसी) के साथ, चीजें काम करती हैं जैसा कि मैं उम्मीद करता हूं। क्या यह एक्सएलसी और आईसीसी का एक कोड है जो मानक नहीं है, या जीसीसी और क्लैंग में एक बग है?
इसी प्रकार का प्रश्न: http://stackoverflow.com/questions/11405/gcc-problem-using-a-member-of-a-base-class-that-depends-on-a-template-argument –