此代码无法编译(给出错误 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()
{}