使用结构模板的结构模板
struct template using struct template
我在另一个模板结构中实现模板结构时遇到问题。
基本上这是可行的:
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>
而不是 struct ListElementPointer*?
的解决方法
PS: 顺便说一句,这是一个学校项目。不允许使用标准向量或列表类,我不想为我使用的每种类型键入新定义...也不允许使用类 :-/
如果您能够使用 C++11,则可以使用以下别名声明:
template<typename M>
using List = ListElement<M>*;
我在另一个模板结构中实现模板结构时遇到问题。
基本上这是可行的:
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>
而不是 struct ListElementPointer*?
PS: 顺便说一句,这是一个学校项目。不允许使用标准向量或列表类,我不想为我使用的每种类型键入新定义...也不允许使用类 :-/
如果您能够使用 C++11,则可以使用以下别名声明:
template<typename M>
using List = ListElement<M>*;