ben şöyle yuvalanmış şablonu tanımlamak çalışıyorumİç içe geçmiş şablonu tanımlamanın yasal sözdizimi nedir?
class A {
template <typename T> class B {
template <typename U> void foo(U arg);
};
};
aşağıdaki iç içe şablon var:
template <typename T, typename U> void
A::B<T>::foo(U arg) {...}
Ama declaration is incompatible with function template
hatası alıyorum. Bunu yapmak için yasal sözdizimi nedir?
Neredeyse yanı sadece sağ orada tanımlayabilirsiniz. Ayrı bir dosyaya giremez. – chris
@chris: Sadece ayrı bir çeviri biriminde bulunamadığından farklı bir dosyada bulunamayacağı anlamına gelmez. Aynı dosyada olması gerekse bile, yine de uygulamayı arayüzden ayırabilirsiniz. –
@MooingDuck, True, files! = TUs. Bağlantılı bir dosyada genel olarak tanımlama satırları boyunca daha çok düşünüyordum. Ve ben, kendimi, sınıf tanımının dışındaki şablonları tanımlamayı seviyorum, bu yüzden neredeyse dedim. OP'nin ilk noktaya doğru gideceğini düşündüm, başarısız olduğu yerde. – chris