Хотя, возможно, это не связано с первоначальным вопросом OP ... это ошибка, которая у меня только что была, и показывает, как эта ошибка могла возникнуть.
Когда вы определяете тип в классе C ++ и возвращаете его, вам нужно указать класс, к которому принадлежит тип.
Например:
class ClassName{
public:
typedef vector<int> TypeName;
TypeName GetData();
};
Тогда GetName () должен быть определен как:
ClassName::TypeName ClassName::GetData(){...}
не
TypeName ClassName::GetData(){...}
В противном случае компилятор вернется с ошибкой:
error: 'TypeName' does not name a type