2016-06-27 4 views
0

Warum hat C++ diese Einschränkung, mit anderen Worten, wenn die Template-Funktion auch teilweise spezialisiert sein könnte, führt dies zu einer Mehrdeutigkeit oder Komplexität der Implementierung?In C++, warum Template-Funktion keine partielle Spezialisierung haben kann?

Warum kann es nicht wie Template-Klasse handeln?

+3

kurz gesagt, weil Überladungsauflösungsregeln komplizierter werden würden, als sie bereits sind ... soweit ich verstehe. Das ist sicherlich eine doppelte Frage. Sie könnten dies lesen: http://www.gotw.ca/publications/mill17.htm –

+0

Weil der Standard das sagt. – skypjack

Antwort

0

Ich glaube, die Idee war, dass Sie die meisten Fälle abdecken können, indem Sie Funktionsvorlagen überladen (etwas, was Sie nicht mit Klassen tun können) und der Designer dachte wahrscheinlich, dass die restlichen Fälle die zusätzlichen Komplikationen in Überladung nicht wert waren.