情况如下:我在头文件中声明了一个结构,并在随附的源文件中将此结构的实例放在std::map<int, myStruct>
中。
代码编译并运行正常,但Eclipse确实不识别函数调用并将其加下划线红色(也无法打开声明)。
示例代码:
//myClass.h
struct myStruct{
int returnValue(){
return 4;
}
};
// other class parameters here
并在源
//myClass.cpp
#include "myClass.h"
#include <iostream>
#include <map>
using std::map;
int main(){
//create map with struct and assign
map<int, myStruct> myMap;
myStruct exampleStruct;
myMap[3]=exampleStruct;
//access struct via [] map operator
std::cout << myMap[3].returnValue() << "\n"; //this line flagged by Eclipse, but works
return 0;
}
Eclipse的这种行为是已知的,还是我的配置错了?
另外,在旁注中,我不是专业的程序员,所以非常欢迎样式建议等:)
编辑:修复了myClass.h和myClass.cpp中的拼写错误
答案 0 :(得分:1)
在修正拼写错误后,代码很好,即使没有警告也可以接受。所以我只想象它可能是Eclipse配置中的一个问题。
答案 1 :(得分:0)
好的,这很令人尴尬。我通过eclipse运行了示例代码(真正的示例非常长,并且依赖于一些自定义库),而Eclipse在地图中的结构函数没有问题。
所以我重建了真实项目的索引,现在一切都很好。奇怪,因为当我创建一个新类时,Eclipse似乎总是更新索引,但这次不是...所以感谢所有阅读和回答的人,但问题已经解决了。