ich eine Template-Klasse haben:Wie man einen Vektor erstellen, die Elemente aller Arten von der gleichen Vorlage speichert Klasse
template<typename A, typename B, typename C>
class blah{...};
ich eine std :: vector <> erstellen möchten alle möglichen Objekte von blah zu retten .
zum Beispiel
blah<float, int, string>
oder
blah<string, string, char>
diejenigen blah Objekte, obwohl aus dem gleichen Template-Klasse entstanden, sind im Wesentlichen verschiedene Typen. Wie kann ich einen std :: vector deklarieren, um alle zu speichern?
Ich dachte über std :: Variante, aber ich kann nicht, weil es zu benutzen, muss ich alle möglichen Template-Parameter-Kombinationen aufzuzählen:
std::variant<all possible template parameter combinations>
ich über die Verwendung von std :: dachte jeder, ich kann ich nicht, weil ich nicht weiß, wie man cast von std :: any zurück zum richtigen typ eintippt?
Ich dachte an eine Basisklasse mit:
template<typename A, typename B, typename C>
class blah : public blah_base
{...};
und einen Vektor wie folgt erklären:
std::vector<blah_base*>
aber wieder, ich weiß noch nicht, wie Stimmen aus blah_base eingeben * zurück zum richtigen Typ?
Wie verwenden Sie die 'blah <...>' Instanzen? Was ist dein Anwendungsfall? Kannst du es nicht mit Vererbung und virtuellen Funktionen lösen? Was ist das * tatsächliche * Problem, das Sie versuchen zu lösen? –
Kannst du die Definition von 'bla' angeben oder ist es zu lang? – skypjack
Ich versuche, tief learning Neuronennetzwerk zu implementieren. Der Blah-Typ ist der Tensor. Ein Tensor könnte unterschiedliche Dimensionen, Gerätetypen und Datentypen haben. Also ist das echte Blah definiert als "Vorlage class {...};" –