Ist es möglich, eine Template-Klasse zu spezialisieren, um zusätzliche Template-Parameter zu übernehmen?C++ spezialisieren eine Template-Klasse, um einen zusätzlichen Template-Parameter zu übernehmen
Zum Beispiel:
template <typename T>
struct X {
void foo() { cerr << "Generic" << endl;}
};
template <>
template <bool b>
struct X<int> {
void foo() { cerr << "Specialization" << endl;}
};
ich nicht die oben genannten Arbeiten mit g ++ machen könnte, aber vielleicht gibt es einen Trick, die diese Arbeit machen.
Edit: Ich will nicht die Vorlage <bool b>
auf die Basisvorlage X bewegen, weil es Merkmal nur X<int>.
ist, wenn ich zu haben, ist es eine Möglichkeit, Benutzer keine Werte angeben, erlauben kann haben dafür? Ich würde wirklich gerne einen Ansatz, der diese Route nicht geht.
Haben Sie von einer partiellen Template-Spezialisierung gehört? –
"* Wenn ich muss, gibt es eine Möglichkeit, dass ich Benutzern erlauben kann, keine Werte dafür anzugeben? *" Ja - Standard-Template-Parameter. Z.B. 'Vorlage'. –
ildjarn
Wie @ildjarn sagte, können Sie - aber ich würde darauf hinweisen, dass es in den meisten Fällen besser ist, einen anderen Typ als bool zu verwenden. 'mytempl' vs. 'myempl ' ist normalerweise aussagekräftiger als 'mytempl ' vs. 'mytempl '. –