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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
yam_k
記事: 4
登録日時: 12年前

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

#1

投稿記事 by yam_k » 12年前

はじめまして。
簡単な問題だと思うのですが、原因がわからず少し困っています。
どなたか教えて頂けますでしょうか。よろしくお願いします。

以下のコードの「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;
}

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

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

#2

投稿記事 by h2so5 » 12年前

本当にコンパイルエラーですか?
エラーメッセージで検索するとEclipse関連のようなのでIDEのエラーだと思いますが。

yam_k
記事: 4
登録日時: 12年前

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

#3

投稿記事 by yam_k » 12年前

回答ありがとうございます。

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

yam_k
記事: 4
登録日時: 12年前

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

#4

投稿記事 by yam_k » 12年前

Eclipse のエディターのバグかもしれません。
とりあえず、Eclipse の以下の設定をオフにするとエラーは出なくなりました。

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

yam_k
記事: 4
登録日時: 12年前

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

#5

投稿記事 by yam_k » 12年前

これはどうやってトピックを解決済みにすればいいんでしょうか。
それっぽいのが見当たらない。。。

閉鎖

“C言語何でも質問掲示板” へ戻る