这个错误在于类型不符,可能是宏定义造成的,见下。最多的可能是因为; {} () 没有写对,造成编译器识别错误而出错。根据搜索结果整理如下:
1,宏定义问题
头文件
[code lang="cpp"]
#ifndef MAIN_H_
#define MAIN_H_
#include<map>
#include<string>
#include<vector>
using namespace std;
typedef map< string, vector<string> > pvMap;
typedef map< string, vector<string> >::iterator pviter;
typedef pair<map<string,vector<string> >,bool> insiter;
#endif /* MAIN_H_ */
[/code]
源文件
[code lang="cpp"]
void mapping(char *pmeter, char *value, pvMap &themap){
insiter = themap.insert(pmeter); //报错处
bool vfound = false;//if value was found return true
for (int i = 0; i < insiter->first.size(); i++){
if (insiter->second[i] == value){ //did find pre-existing value
vfound = true;
}
}
if (vfound == false){
insiter->first.push_back(value);
}
}
[/code]
因为insiter被定义为一个类型,却被当作变量使用而报错。
2,下面的语句
[code lang="cpp"]
class Rectangle {
public:
unsigned width,unsigned height;//出错处。
void set_size(unsigned x, unsigned y);
unsigned area();
unsigned perimeter();
bool is_square();
}; //end of of class Rectangle
[/code]
将第二个unsigned前的,改为;,问题解决。
3,就是我遇到的问题,用错符号问题。
[code lang="cpp"]
regcomp((&buf, Current_LNO->Enable_Simd_FuncName, REG_NOSUB | REG_NEWLINE)
[/code]
函数调用中参数之间的分割,按成了., 检查了半天。。。。

好贴,正好是我想找的资料,谢谢分享!
[...] Expected unqualified-id before 查错 – 257 views [...]