このコードはコンパイルされません(エラーC2059、C2065、C2072、C2143、C2146、C2447、C2470、C4430が発生します)が、B*をintのような組み込み型に変更した場合はコンパイルされます。何か案は?
template <typename T>
class A
{
private:
struct B
{
T key;
};
B* foobar(T key);
};
template <typename T>
B* A<T>::foobar(T key)
{
B* ptr = new B;
B->key = key;
return ptr;
}
int main()
{}