С ++ Синтаксис инициализатора коллекции CLI - PullRequest
3 голосов
/ 17 декабря 2009

Поддерживается ли это в C ++ CLI? Я хочу сделать что-то вроде следующего примера C # в C ++ CLI

var dictionary = new Dictionary<string, string> { { "foo", "bar" } };

Спасибо

Ответы [ 3 ]

2 голосов
/ 18 декабря 2009

Лучшее, что я придумал, - это создание массива, инициализированного внутри строки, а затем инициализация словаря с содержимым массива в статическом конструкторе. Что-то вроде

static initonly System::Collections::Generic::Dictionary<System::String^, System::String^>^ dictionary;
static initonly array<System::String^> arrayToPopulateDictionary = gcnew array<System::String^> { "foo", "bar" };

static Foo()
{
    for (int i  = 0; i < arrayToPopulateDictionary->Length; i += 2)
        listMappings->Add(arrayToPopulateDictionary[i], arrayToPopulateDictionary[i + 1]));
}
0 голосов
/ 17 декабря 2009

Это определенно возможно в C ++ 0x , независимо от того, переводится ли это в C ++ / CLI или нет, неизвестно (так и должно быть).

0 голосов
/ 17 декабря 2009

Если я не ошибаюсь, это просто невозможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...