4

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

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);

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

4

2 回答 2

4

您真的需要与模板参数具有相同值的模板的静态成员变量吗?

唯一的用途是,如果它的值在程序的整个生命周期内发生变化,但我真的想不出任何情况,这会产生比引起混乱更多的好处。

于 2009-03-28T10:20:08.487 回答
3

Queue<T, nextptr>::pnext被声明为 type T* T::*,所以它应该是这样的:

template<class T, T* T::*nextptr>
T* T::* Queue<T, nextptr>::pnext(nextptr);
于 2009-03-28T10:14:49.217 回答