Es ist möglich! :-)
Nicht geradlinig, aber mit einer kleinen Hilfsfunktion können Sie ein Wörterbuch in einer Codezeile erstellen und starten:
Getestet, funktioniert.
Heute habe ich C # -Code gesehen, der ein statisches Wörterbuch erstellt und initialisiert:
%Vor%Aber als ich mich entschieden habe, denselben Code für C ++ / CLI zu schreiben, ist ein Fehler aufgetreten. Hier ist mein Versuch:
%Vor%Kann ich das tun und wenn ja, wie?
C # 3.0 und höher erlaubt Benutzern, einen "Initialisierer" zu definieren; Für Sammlungen ist das eine Reihe von Elementen, die für Wörterbücher auf Schlüssel und Werte zugeschnitten sind. C ++. NET hat meines Wissens keine Sprachfunktion. Siehe diese Frage: Es ist sehr ähnlich: Array-Initialisierung in Managed C ++ . Array-Initialisierer sind der einzige solche Initialisierer in C ++; andere Sammlungen bieten sie nicht in C ++ an.
Grundsätzlich besteht Ihre Hauptoption darin, einen statischen Konstruktor zu deklarieren und Ihr Wörterbuch dort zu initialisieren.
Dieser Typ von Dictionary<T>
initialization ist ein Feature nicht der Klasse selbst, sondern des C # -Compilers. Es wird in separate Anweisungen zur Erstellung des Dictionary<T>
-Objekts und zum Erstellen und Hinzufügen jedes Schlüssel / Wert-Paars übersetzt. Ich glaube nicht, dass der C ++ - Compiler die gleichen Fähigkeiten bietet.
Es ist möglich! :-)
Nicht geradlinig, aber mit einer kleinen Hilfsfunktion können Sie ein Wörterbuch in einer Codezeile erstellen und starten:
Getestet, funktioniert.
Tags und Links .net initialization dictionary static c++-cli