※ ChatGPTを利用し、要約された質問です(原文:分割コンパイルの方法)
自作クラスのメンバ変数にSTLのlistを使おうとするとエラーが発生する
このQ&Aのポイント
自作のクラスのメンバ変数にSTLのlistを使おうとすると、コンパイルエラーが発生します。
別の自作クラスをメンバ変数にしても問題なくコンパイルできるため、原因がわかりません。
解決法を教えていただける方がいらっしゃれば、ご教示いただけると幸いです。
自作のクラスのメンバ変数にSTLのlistを使おうと考えています。
1ファイルでのコンパイルは通るのですが、以下のように分割コンパイルしようとすると、list<int> value; の行で以下のエラーが出ます。
listクラスではなく、別の自作のクラスをメンバ変数にして、そのクラスのヘッダーファイルをインクルードした場合は問題なくコンパイルできるので、何が問題なのか全く見当がつきません。どなたかご存知の方がおられれば解決法を教えていただけないでしょうか?よろしくお願いいたします。
error C2143: 構文エラー : ';' が '<' の前に必要です。
error C2501: 'list' : 識別名を宣言するのに、型が指定されていません。
error C2059: 構文エラー : '<'
error C2238: ';' の前に不正なトークンがあります。
/* test.h */
#ifndef TEST_H_INCLUDED
#define TEST_H_INCLUDED
#include <list>
class Test{
public:
list<int> value;
Test() {}
};
#endif
お礼
どうもありがとうございます。仰るとおり std::listって落ちでした。 分割コンパイルはあまり経験がなくて、普段はusing namespace std;をして名前空間をあまり意識していませんでした。