我有一个模板类,它具有一个静态的成员指针,如下所示:

template<class T, T* T::*nextptr>
class Queue
{
    T* head;
    T* tail;
    static T* T::*pnext;
};

我的问题是如何编写静态成员指针的初始化程序。我尝试了一个明显的案例:
template<class T, T* T::*nextptr> T* Queue<T, nextptr>::*pnext(nextptr);

但这没有用。任何的想法?

最佳答案

Queue<T, nextptr>::pnext被声明为T* T::*类型,因此应如下所示:

template<class T, T* T::*nextptr>
T* T::* Queue<T, nextptr>::pnext(nextptr);

09-07 06:19