In Bezug auf CRP , wenn ich eine geringfügige Variation davon implementieren möchte (mit Vorlagenparameter) Ich bekomme einen Kompilierfehler:
%Vor%Ich bin mir nicht sicher, ob man diese Form wählen würde (die nicht für mich kompiliert), anstatt diese zu benutzen (das funktioniert)
%Vor%Dies sollte auch kompilieren. Wir müssen nur den anderen Template-Parameter explizit angeben
%Vor%Im ersten Beispiel nimmt die Klassenvorlage tatsächlich Vorlagenparameter , nicht nur Vorlagenparameter , wie Sie geschrieben haben:
%Vor%Also macht dieser Code keinen Sinn:
%Vor% Hier ist Derived
ein Vorlagen-Template-Argument, das ein Template-Argument benötigt, das Sie ihm nicht zur Verfügung gestellt haben. Tatsächlich können Sie in der Funktion CallDerived()
den -Typ , den Sie angeben müssen, nicht kennen, um das zu tun, was Sie vorhaben.
Der zweite Ansatz ist die richtige Lösung. Benutze es.