Ich versuche, den folgenden Code zu kompilieren, aber ich bin immer die Fehlermeldung:Partielle Klassen-Template Spezialisierung C++ 11
wrong number of template arguments
template<int start, int end, int step>
struct range{};
template<int start, int end>
struct range<start, end, 1>{};
template<int end>
struct range<0, end, 1>{};
int main() {
auto r1 = range<0, 5, 2>{};
auto r2 = range<5, 15>{}; //error: wrong number of template arguments
auto r3 = range<10>{}; //error: wrong number of template arguments
}
Wie kann ich teilweise Template-Klasse-Objekt erstellen?
versuchen Sie, machen '0' und '1' Standardargumente sein? – TartanLlama
Die Vorlagenspezialisierung gibt an, wie sie sich mit bestimmten Parametern verhalten soll, ändert jedoch nicht, wie sie _instantiiert_ wird. Dazu wird immer die erste Template-Deklaration verwendet. – StenSoft