Ich beginne mich zu entschuldigen, wenn ich dumm genug bin, um die Antwort nicht zu finden, wenn es so offensichtlich ist.
Ich habe Dutzende von Seiten gesehen, die davon sprachen, eine spezielle Template-Spezialisierung für pointer -Parameter zu haben.
Ich möchte allerdings verhindern können, dass eine Vorlage Zeigerparameter parametrisiert, aber ich kann nicht herausfinden, wie das geht.
%Vor%Ist es möglich?
Danke.
Sie können die Spezialisierung deklarieren (in diesem Fall ist es technisch nur eine Überladung), aber nicht definieren:)
%Vor% In C ++ 11 können Sie static_assert
auf folgende Weise verwenden:
Ein Beispiel finden Sie hier auf Ideone .
Ich empfehle das, weil es nützlichere Fehlermeldungen gibt, wenn jemand versucht, Ihre Funktion mit einem Zeiger aufzurufen (Linker-Fehler können in diesem Fall sehr verwirrend sein). Linker Fehler werden auch nicht angezeigt, bevor Verknüpfung auftritt.
Ich bin selbst ein Template-Metaprogrammierer, aber ich denke
%Vor%sollte funktionieren, da diese Funktion nur für Nicht-Zeiger-Parameter existieren sollte. Natürlich erfordert dies C ++ 11 oder mindestens TR1 oder Boost's Traits.