Betrachten Sie eine Klassenvorlage, die einen Container implementiert, der eine Option zum Auswählen des Speicherortes enthält.Vermeiden Sie, den Vorlagenparameter für den Zugriff auf enum in der Klassenvorlage zu wiederholen
template<class T>
class Container {
public:
enum StorageOption {A,B};
Container(StorageOption opt_): option(opt_) {}
private:
StorageOption option;
};
Hier StorageOption
wurde gewählt, ein Mitglied zu sein, da es nur in der Klasse verwendet wird.
nun die Klasse instanziiert ich brauchen würde, die Template-Parameter zu wiederholen, wie:
{
Container<int> c(Container<int>::A);
}
Gibt es eine Möglichkeit, die Parameter zu wiederholen zu vermeiden und zugleich hat StorageOption
Mitglied zu sein oder ist es eine bessere Möglichkeit, die Option zu implementieren?
Ich sehe nicht, wie hmjds Idee möglicherweise funktionieren könnte. –
Haben Sie das versucht mit 'using type = Container :: StorageOption'? –
Es gibt eine hässliche Lösung, dass Sie das Enum aus der Klasse entfernen und es ContainerStorageOption nennen könnten. –