C ++: синтаксическая ошибка C2061: неожиданный идентификатор - PullRequest
3 голосов
/ 12 июня 2010

Что не так с этой строкой кода?

bar foo (вектор ftw);

Производит

error C2061: syntax error: identifier 'vector'

Ответы [ 5 ]

5 голосов
/ 12 июня 2010

вместо этого попробуйте std :: vector. Кроме того, убедитесь, что вы

#include <vector>
4 голосов
/ 12 июня 2010

Возможно, вы забыли включить вектор и / или импортировать std::vector в пространство имен.

Убедитесь, что у вас есть:

#include <vector>

Затем добавьте:

using std::vector;

или просто используйте:

bar foo(std::vector<odp> ftw);
1 голос
/ 12 июня 2010

Есть ли у вас:

#include <vector>

и

using namespace std; в вашем коде?

<vector> определяет класс std::vector, поэтому вам нужно включить его где-нибудь в вашем файле.

поскольку вы используете vector, вам нужно указать компилятору, что вы собираетесь импортировать все пространство имен std (возможно, это не то, что вы хотите делать), через using namespace std;

В противном случае вектор должен быть определен как std::vector<myclass>

0 голосов
/ 12 июня 2010

Сам по себе этот фрагмент кода не имеет определения bar, vector или odp. Что касается того, почему вы не получаете сообщение об ошибке определения bar, я могу только предположить, что вы вывели его из контекста.

Я предполагаю, что он должен определять foo как функцию, что vector называет шаблон и что он должен определять параметр с именем ftw, но в объявлении все, что на самом деле не определяется, нуждается в быть объявленным ранее, чтобы компилятор знал, что означают все остальные идентификаторы.

Например, если вы определяете новые типы следующим образом, вы получаете фрагмент, который будет компилироваться:

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

bar foo(vector<odp> ftw);
0 голосов
/ 12 июня 2010

попробуй std::vector<odp> или using std;

...