从std :: map访问时,Eclipse CDT无法解析结构函数

时间:2015-10-05 13:23:45

标签: c++ eclipse dictionary struct

情况如下:我在头文件中声明了一个结构,并在随附的源文件中将此结构的实例放在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中的拼写错误

2 个答案:

答案 0 :(得分:1)

在修正拼写错误后,代码很好,即使没有警告也可以接受。所以我只想象它可能是Eclipse配置中的一个问题。

答案 1 :(得分:0)

好的,这很令人尴尬。我通过eclipse运行了示例代码(真正的示例非常长,并且依赖于一些自定义库),而Eclipse在地图中的结构函数没有问题。

所以我重建了真实项目的索引,现在一切都很好。奇怪,因为当我创建一个新类时,Eclipse似乎总是更新索引,但这次不是...所以感谢所有阅读和回答的人,但问题已经解决了。