C++ プログラム内で typedef 構造体を使用しようとしています。テンプレートの typedef 構造体ポインターを返すメソッドをクラスに追加しようとしたときにエラーが発生するまで、次のコードを書き始めました。
StructSource.h
template <typename T>
class StructSource {
public:
struct TestStruct{
T value;
};
};
ユーザー.h
#include "StructSource.h"
class User {
public:
typedef StructSource<int>::TestStruct IntStruct;
IntStruct *getIntStruct();
};
ユーザー.cpp
#include "User.h"
IntStruct *User::getIntStruct() {
return 0;
}
これにより、GCC でコンパイルすると次のエラーが発生します。
User.cpp:3:1: エラー: 'IntStruct' に型の名前がありません
なぜそうなるのか説明するのに途方に暮れています。不足しているタイプの情報は何ですか?