cpp / intermediate
Snippet
Template-Spezialisierung
Die Template-Spezialisierung ermöglicht es Ihnen, eine benutzerdefinierte Implementierung eines Templates für einen bestimmten Datentyp zu definieren und so die generische Version zu überschreiben.
snippet.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
template <typename T>class Formatter {public:void print(T val) { /* Default logic */ }};template <>class Formatter<bool> {public:void print(bool val) {std::cout << (val ? "Yes" : "No");}};
Erklärung
1
template <>
Zeigt an, dass dies eine vollständige Spezialisierung eines zuvor definierten Templates ist.
2
class Formatter<bool>
Gibt an, dass diese spezifische Version der Klasse nur für den Typ bool bestimmt ist.