ページ 11

classの宣言をヘッダに移すとコンパイルエラー

Posted: 2014年3月12日(水) 11:37
by yam_k
はじめまして。
簡単な問題だと思うのですが、原因がわからず少し困っています。
どなたか教えて頂けますでしょうか。よろしくお願いします。

以下のコードの「class Test {};」 の部分を "common.h" の中に書くと、
vector の push_back でコンパイルエラーが発生します。
エラーメッセージ「Invalid arguments ' Candidates are: void push_back(const Test &) '」

"common.h" には「class Test {};」以外何も書いていない状態です。

コード:

#include <vector>
#include "common.h"
using namespace std;

class Test {};

int main() {
	vector<Test> vec;
	vec.push_back(Test());
	return 0;
}

Re: classの宣言をヘッダに移すとコンパイルエラー

Posted: 2014年3月12日(水) 11:57
by h2so5
本当にコンパイルエラーですか?
エラーメッセージで検索するとEclipse関連のようなのでIDEのエラーだと思いますが。

Re: classの宣言をヘッダに移すとコンパイルエラー

Posted: 2014年3月12日(水) 12:03
by yam_k
回答ありがとうございます。

おっしゃるとおり Eclipse のエラーでした。
コンパイル自体は通っており、実行もできました。
なぜエラーになるのか、Eclipse 方面から少し調べてみます。

Re: classの宣言をヘッダに移すとコンパイルエラー

Posted: 2014年3月12日(水) 12:09
by yam_k
Eclipse のエディターのバグかもしれません。
とりあえず、Eclipse の以下の設定をオフにするとエラーは出なくなりました。

Window > Preferences > C/C++ > Code Analysis > Invalid Arguments

Re: classの宣言をヘッダに移すとコンパイルエラー

Posted: 2014年3月12日(水) 12:14
by yam_k
これはどうやってトピックを解決済みにすればいいんでしょうか。
それっぽいのが見当たらない。。。