Ich habe die Klasse als Vorlage erstellt:
Code: Select all
template
class Exporter
{
void print(T const& value) {
/* Print Each member of value recursively */
}
};
Aber ich möchte, dass es auch für Bereiche funktioniert. Aber Bereiche können nicht immer konstant sein, daher habe ich eine teilweise Spezialisierung.
Code: Select all
template
class Exporter
{
void print(R& value) {
Exporter exporter;
for (auto& item: value) {
exporter.print(item);
}
}
};
Dies funktioniert für alle Typen außer std::vector. Wie kann ich die teilweise Spezialisierung auf Bereiche anwenden, aber nicht auf std::vector (da der Vektor von bool perfekt mit dem ursprünglichen Exporter funktioniert).