Netbeans IDE 8.0.2 C++代码辅助问题映射与向量值声明
Netbeans IDE 8.0.2 C++ Code Assistance Issues Map with Vector Value Declaration
我正试图在NetBeans中设置一个类型为std::map<std::string, std::vector<int>> arrayInfo84
的变量,但这导致代码援助抛出一个问题,说
无法解析标识符数组Info84
意外的令牌:映射
意外的令牌:;
我的其他具有更基本数据类型的映射变量(即string
int
等)工作良好。这似乎是矢量的问题。在有人问之前,是的,我的头上确实有#include<vector>
。
我猜这是支持C++11的问题。然而,我不知道如何解决这个问题。我的工具集是CygWin的最新版本。
问题可能在于定义:
std::map<std::string, std::vector<int>> arrayInfo84;
// here ^^ is the problem
最后一个标记是>>
,在C++11(C++98/C++03)之前,它被解析为移位运算符。这是因为C++使用了所谓的"最大咀嚼原则"。由于这个事实,嵌套模板总是使用> >
作为分隔符,所以上面的声明应该是
std::map<std::string, std::vector<int> > arrayInfo84;
// note the additional space here ^^^
然而,C++11放宽了规则,现在允许使用>>
作为嵌套模板的分隔符,因此您的定义在C++11中有效,但在C++98/C++03中无效。
您的Netbeans代码分析器可能不遵循最新的C++11规则,这就是您可能收到警告的原因。确保为编译器配置对C++11的支持,比如传递标志-std=c++11
,以及代码分析器(如果它不是自动跟随编译器)。
相关文章:
- AIX C++映射编译问题
- 在c++中擦除后在映射上迭代时出现的奇怪问题
- 在 C++ 中使用静态映射的奇怪问题
- 一维数组映射方式的性能差异问题
- QlineEdit的信号映射问题
- 使用集合和映射来解决模式问题
- 在将平截头体从摄影机空间转换为灯光空间以进行阴影映射方面存在主要问题
- 使用成员函数指针作为键C++映射时出现问题
- 无序映射的问题
- 我的 lambda 表达式进行映射键比较有什么问题?
- 将 std 绑定传递到函数映射的问题
- 打开文件映射问题,找不到文件映射
- 标准::映射插入/擦除的并发问题
- 删除元素时使用 STL 映射的迭代器时遇到问题
- 在 C 语言中打印映射/过滤器/减少函数时出现问题
- 映射问题
- 参数"Global\MyMapping"的创建文件映射问题
- std::在C++上映射问题
- 普通映射问题
- stl:映射问题