Seltsamerweise wiederkehrende Vorlage - Variation
BezüglichCRP Wenn ich eine geringfügige Variation davon implementieren möchte (unter Verwendung des Template-Template-Parameters), erhalte ich einen Kompilierungsfehler:
<code>template <template <typename T> class Derived> class Base { public: void CallDerived() { Derived* pT = static_cast<Derived*> (this); pT->Action(); // instantiation invocation error here } }; template<typename T> class Derived: public Base<Derived> { public: void Action() { } }; </code>
Ich bin mir nicht sicher, ob man dieses Formular wählen würde (das nicht für mich kompiliert), anstatt es zu verwenden (das funktioniert)
<code>template <typename Derived> class Base { public: void CallDerived() { Derived* pT = static_cast<Derived*> (this); pT->Action(); } }; template<typename T> class Derived: public Base<Derived<T>> { public: void Action() { } }; </code>