Initialisieren Sie das statische Dictionary beim Erstellen in C ++ / CLI

8

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?

    
Viktor Apoyan 16.05.2011, 18:09
quelle

4 Antworten

6

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.

    
KeithS 16.05.2011, 18:16
quelle
3

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.

    
dlev 16.05.2011 18:14
quelle
0

Mein Ansatz ist (.NET 4.5):

%Vor%     
MrHIDEn 23.10.2015 07:02
quelle
0

Es ist möglich! :-)
Nicht geradlinig, aber mit einer kleinen Hilfsfunktion können Sie ein Wörterbuch in einer Codezeile erstellen und starten:

%Vor%

Getestet, funktioniert.

    
Tobias Knauss 28.02.2017 08:11
quelle