nedeni olduğuna dair bir sınıf örnekleniminden, tüm beyanlar (değil üye fonksiyonlarının tanımları da başlatılmıştır. Sınıf şablonu, tam bir uzmanlık tanımının gerekli olduğu durumlarda tam olarak oluşturulur. Örneğin sizin durumunuzda olduğu gibi bir temel sınıf olarak kullanıldığında bu durum geçerlidir.
ne olur bu noktada B
henüz tam bir türüdür (Bu sınıf tanımının Kapanış ayracı sonradır) A<B>
class B : public A<B>
de örneği olmasıdır. o kapsamında taradığını Ancak, A<B>::action
beyanı, tam olduğu B
gerektirir:
Subclass::mytype
Ne B
tamamlandığında hangi bir noktaya örnekleme geciktirdiğini yapmak gerekir. Bunu yapmanın bir yolu, bir üye şablonu yapmak için action
bildirimini değiştirmektir.
template<typename T>
void action(T var) {
(static_cast<Subclass*>(this))->do_action(var);
}
Hala tip-güvenli olduğu var
başarısız olur var
do_action
geçerek, sağ türde değil çünkü eğer.
Kodumu yeniden yapılandırmaya karar verdim (burada açıklamamış diğer bazı sorunlar nedeniyle), ancak bu yaklaşımı test ettim ve gerçekten sorunu çözdüm. Teşekkürler! – seanhodges