C ++ šablona statické ukazatele k člen inicializace

hlasů
4

Mám šablonu třídy, která má statickou pointer-to-člen, jako je tento:

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

Moje otázka je, jak psát inicializátor statické ukazatele-to-člena. Snažil jsem se o zjevný případ:

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

Ale to nefungovalo. Nějaký nápad?

Položena 28/03/2009 v 11:07
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
4

Myslíte si opravdu potřebujete statické členské proměnné šablonu, která má stejnou hodnotu jako parametr šablony?

Jediné použití by bylo, kdyby se jeho hodnota se mění v průběhu doby trvání programu, ale opravdu si nemyslím, že jakékoliv situace byla by to produkovat větší užitek, než vést k záměně.

Odpovězeno 28/03/2009 v 11:20
zdroj uživatelem

hlasů
3

Queue<T, nextptr>::pnextje deklarována jako typ T* T::*, takže by to mělo vypadat takto:

template<class T, T* T::*nextptr>
T* T::* Queue<T, nextptr>::pnext(nextptr);
Odpovězeno 28/03/2009 v 11:14
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more