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
}
아마 여기 아주 간단한 뭔가가 있어요,하지만 난 온 스택 오버플로를 통해 꽤 수색하지 않은 이렇게하는 사람의 결과와 함께 어떤 도움을 주시면 감사하겠습니다!
가 의견을 보내 주셔서 감사합니다 쓰기! 이 변경 사항으로 이제 'SomeInfo'에 'type name is not allowed'오류가있는 빨간색 밑줄이 표시됩니다. 어떤 아이디어? – CoderJoe1991
말하기 어렵습니다. 내가 가진 정확한 코드를 조롱했는데 오류가 없습니다. VS2015를 사용하고 있습니다. – tinstaafl
새 테스트 프로젝트에 게시 한 내용을 복사했지만 여전히 동일한 오류가 발생합니다. NET Framework 4.5를 실행하는 VS2012를 사용하고 있습니다. 이 구문이 너무 새롭거나 ... 가능합니까? – CoderJoe1991