1

次の行で VC++ 2010 C2061 エラーが発生します。

#include "queryevaluator_p.h"

class QueryEvaluator {
public:
    vector<AttrValue>* getCandidateList(QueryClause cl, int pos, ResultSet *computedRes);
...

Error 41 error C2061: syntax error : identifier 'ResultSet' h:\dropbox\sch\cs3202\code\source\includes\queryevaluator.h 40

ResultSet「queryevaluator_p.h」で定義された構造体です

struct ResultSet{ //a set of result
    bool valid;
    vector<ResultRow> rows;
};

ここで何が問題なのですか?ResultSet は別の場所で使用できます

4

1 に答える 1

2

おそらく、循環インクルード (queryevaluator_p.hメインヘッダーを再度インクルード) があり、混乱を引き起こしている可能性があります。ファイルの 1 つを最初にコンパイルする必要があるため、正確な設定によっては、このような影響が生じる可能性があります。

解決策は、1 つの場所にインクルードする代わりに前方宣言を使用して、循環依存を解決することです。たとえば、ヘッダーstruct ResultSetを含める代わりに前方宣言できます。queryevaluator_p.h

于 2013-02-16T11:54:52.383 に答える