struct -中模板结构的问题

Issue with template struct in struct -

本文关键字:结构 问题 struct      更新时间:2023-10-16
template <class T>
struct _sApplicationPoolHeader
{
    int iApplicationList;
    T* oData;
};
template <class T>
struct _sAppPoolNode
{
    _sAppPoolNode* psNext;
    _sApplicationPoolHeader<T> psHeader;
    _sAppPoolNode()
    {
        psNext = NULL;
    }
};

为什么我得到一个编译错误,而我声明这个:注:如果我在类上面声明template,它就可以工作了。

class ApplicationPoolMng
{
private:
    template <class T>
    _sAppPoolNode<T>  m_psAppPool;
}
error: data member 'm_psAppPool' cannot be a member template _sAppPoolNode<T>  m_psAppPool;

该语法只能用于定义函数成员模板。使用:

template <class T>
class ApplicationPoolMng
{
private:
    _sAppPoolNode<T>  m_psAppPool;
};

所有类都需要模板化,而不仅仅是成员。