【发布时间】:2018-10-01 21:33:19
【问题描述】:
我正在用 C++ 编写一个文本文件解析器。为此,我必须将“valueToParse”(字符串类型)及其对应的正则表达式(字符串类型)存储在 map 中。我在 .h 文件中定义了地图并将其包含在 main.h 文件中。在构建解决方案时,我观察到如下错误:
错误 C2057:预期的常量表达式 c:\mypractice\hobbyprojects\MyParser\logparser.h
错误 C2466:无法分配常量大小为 0 的数组 c:\mypractice\hobbyprojects\MyParser\logparser.h
错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数 c:\mypractice\hobbyprojects\MyParser\logparser.h
错误 C2040: 'ValuesToParse' : 'int []' 与 'std::map<_kty>' c:\mypractice\hobbyprojects\MyParser\logparser.h 的间接级别不同
错误 C2440: 'initializing' : 无法从 'const char [4]' 转换为 'int []' c:\mypractice\hobbyprojects\MyParser\logparser.h
我的 C++ 代码如下:
main.cpp
#include <iostream>
#include <regex>
#include "logParser.h"
int main()
{
return 0;
}
logParser.h:
#pragma once
#include <string>
#include <map>
std::map<std::string, std::string> ValuesToParse;
ValuesToParse["FileName"] = "xyz";
ValuesToParse["Author"] = "abc";
logParser.cpp
#include "logParser.h"
我用谷歌搜索了错误,但没有运气。请不要介意我是 C++ 新手。任何人都可以帮助我理解这一点吗?
【问题讨论】:
标签: c++ visual-studio-2008 stl stdmap