Ich möchte folgendes schreiben:Was soll ich anstelle der Teilspezialisierung von Funktionsvorlagen tun?
template <typename S, typename T> void foo() {
/* code for the general case */
}
template <typename T> void foo<MySType,T>() {
/* partially specialized code - for any kind of T, but when S is MySType */
}
oder in anderen Fällen, die folgenden:
template <typename S, typename T> void bar(const S& a, const T& b) {
/* code for the general case */
}
template <typename T> void bar<MySType,T>(const MySType& a, const T& b) {
/* partially specialized code - for any kind of T, but when S is MySType */
}
C++ (11) wird mich das nicht tun lassen.
Jetzt lese ich this question and its answers; Nehmen wir an, ich kaufe die Erklärung, warum wir keine partielle Template-Spezialisierung haben (oder einfach davon ausgehen, dass ich in der Realität lebe und tatsächlich Code schreiben möchte). Nun, was tun Ich mache, statt?
Ich würde wirklich lieber nicht diese Funktionen in einer Klasse wickeln, es sei denn das ist absolut mein letzter Ausweg.
ehrlich desto tauche ich in C++ 11 und C++ im Allgemeinen, je mehr ich denke, dass „Template-Spezialisierung“ ist eine schreckliche Qualifikation für das, was passiert ist, . Es gibt keine "Template-Spezialisierung" – user2485710
@ user2485710: Tut mir leid, ich verstehe nicht ... können Sie das näher erläutern? Oder Link zu dem, wo Sie das länger diskutiert haben? – einpoklum
Nicht nur die Template-Spezialisierung ist eine Sache, sondern auch eine Turing-Komplettmaschine. Es kann dich jedoch verrückt machen. – Potatoswatter