C ++:语法错误C2061:意外的标识符

时间:2010-06-11 22:04:54

标签: c++ syntax compiler-errors

这行代码出了什么问题?

bar foo(vector ftw);

它产生

error C2061: syntax error: identifier 'vector'

5 个答案:

答案 0 :(得分:5)

尝试使用std :: vector。另外,请确保

#include <vector>

答案 1 :(得分:4)

可能您忘记在命名空间中包含vector和/或导入std::vector

确保您拥有:

#include <vector>

然后添加:

using std::vector;

或只是使用:

bar foo(std::vector<odp> ftw);

答案 2 :(得分:1)

你有:

#include <vector>

你的代码中有

using namespace std;吗?

<vector>定义了std::vector类,因此您需要将其包含在文件中的某个位置。

因为您正在使用vector,所以您需要通过{{}指示编译器您要导入整个std命名空间(可能这不是您想要做的事情) 1}}

否则,vector应定义为using namespace std;

答案 3 :(得分:0)

尝试std::vector<odp>using std;

答案 4 :(得分:0)

这段代码本身没有barvectorodp的定义。至于为什么你没有收到关于bar定义的错误,我只能假设你已经脱离了上下文。

我假设它应该将foo定义为一个函数,vector命名一个模板,并且它应该定义一个名为ftw的参数,但在声明中的任何内容都是实际上并没有被定义需要先前声明,以便编译器知道所有其他标识符的含义。

例如,如果您按如下方式定义新类型,则会获得一个将编译的代码段:

struct bar {};
struct odp {};
template<class T> struct vector {};

bar foo(vector<odp> ftw);