$ 9,2 / 2. Ключ - цитата из C ++ Standard03
.
`Класс считается полностью определенным типом объекта (3.9) (или полным типом) при закрытии} спецификатора класса. В спецификации члена класса класс рассматривается как завершенный в теле функции, аргументах по умолчанию и конструкторе ctor-initializer (включая такие вещи во вложенных классах). В противном случае он считается неполным в своей спецификации члена класса.
Не знаю, что такое UINT16
, но следующее должно работать
template<class T>
class CClass
{
private:
typedef struct {
T *mValue;
T *next;
T *previous;
short int index; // Replacing with int for illustration only
} SValue;
public:
SValue* getNewSValue(void);
private:
};
РЕДАКТИРОВАТЬ 3: ***
пришел туда, пытаясь сделать изменения жирным шрифтом (который я должен был удалить в любом случае)
template<class T> typename CClass<T>::SValue* CClass<T>::getNewSValue(void)
{
return new SValue;
}
int main(){
CClass<int> s;
s.getNewSValue();
}