bu örnekte olduğu gibi, bir türetilmiş sınıftaki bir şablonu temel sınıf üyesi değişkeni kullanmak çalışıyorum:kullanma elemanı değişkenler
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
}
};
gcc ve çınlama hem de Bu değişkeni kullanmayla ilgili çok seçici ve açık bir kapsam veya "bu" açık kullanımını gerektirir. Bazı diğer derleyicilerle (xlc ve icc), işler beklediğim gibi çalışır. Bu standart değil kod veya gcc ve clang bir hata izin xlc ve icc bir durumdur?
Benzer soru: http://stackoverflow.com/questions/11405/gcc-problem-using-a-member-of-a-base-class-that-depends-on-a-template-argument –