template<typename T1, typename T2>
class Bimap {
public:
class Data {
private:
template<typename T> Data& set(T);
template<> Data& set<T1>(typename T1 v) { /*...*/ }
};
};
hatası "olmayan ad kapsamında açık uzmanlaşma":C++: bana hata veriyor
error: explicit specialization in non-namespace scope 'class Bimap<T1, T2>::Data'
hata ne söylediğini anlıyoruz. Ama bunu neden yapamıyorum? Ve bunu nasıl düzeltebilirim?
Bazı derleyiciler bunu destekleyeceğine dikkat çekiyor. – Puppy
C++ uygulamasında, üye sınıf şablonunu açık bir şekilde uzmanlaşmadan açıkça bir üye şablonunda uzmanlaşamazsınız. Ne yapmaya çalıştığınız (yani uzmanlaşma) * mümkün değil *. Aşırı yüklemeyi kullanmalısın. Ya da tüm şeyi tamamen yeniden tasarlayın. MSVC++, bunun bir uzantı olmasına izin veren bir derleyicidir. – AnT