В C++ я пытаюсь инициализировать std :: map значений перечисления для структур.Инициализировать карту перечислений для структур
В заголовочном файле:
enum ePrompts
{
ePrompt1,
ePrompt2,
...
};
enum eDataTypes
{
eIntegers,
eDoubles,
...
};
struct SomeInfo
{
std::string text;
eDataTypes type;
float minVal;
float maxVal;
};
std::map<ePrompts, SomeInfo> mInfoMap;
В файле CPP:
void SomeClass::InitializeThis()
{
// I would like to have an approach that allows one line per entry into the map
mInfoMap[ePrompt1] = (SomeInfo){"text1", eIntegers, 2, 9}; //Error: Expected an expression
// Also tried
SomeInfo mInfo = {"text1", eIntegers, 2, 9};
mInfoMap[ePrompt1] = mInfo; // works
mInfo = {"text2", eIntegers, 1, 5}; //Error: Expected an expression
}
Я, вероятно, не хватает что-то очень простое, но я искал через переполнение стека совсем немного и не пришли с любыми результатами того, кто это делает. Любая помощь будет оценена!
Спасибо за обратную связь! С этим изменением я теперь получаю «Некоторая информация», красная подчеркнутая, с именем типа ошибки «не разрешено». Есть идеи? – CoderJoe1991
Трудно сказать. Я издевался над точным кодом, который у вас есть, и у меня нет ошибок. Я использую VS2015 – tinstaafl
Я скопировал то, что я отправил в новый тестовый проект, и все еще сталкиваюсь с теми же ошибками. Я использую VS2012, работающий с .NET framework 4.5. Возможно ли, что этот синтаксис слишком новый или ...? – CoderJoe1991