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>::pnexttype として宣言されてT* T::*いるため、次のようになります。

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