我遇到了在另一个模板化结构中实现模板化结构的问题。
基本上这有效:
template<typename T>
struct ListElement {
T Value;
struct ListElement<T>* Next;
};
template<typename M>
struct List {
struct ListElement<M>* ContainedElements;
};
但我真正想要的是这样的实现:
template<typename T>
struct ListElement {
T Value;
struct ListElement<T>* Next;
};
template<typename M>
typedef struct ListElement<M>* List;
问题是你不能将typedef与模板一起使用。任何编写struct List<Anytype>
而不是结构ListElementPointer *?
答案 0 :(得分:1)
如果您能够使用C ++ 11,则可以使用以下别名声明:
template<typename M>
using List = ListElement<M>*;