考虑以下两种结构:
template <typename T> struct duplet{
QString str;
T value;
}
struct MyObject{
QList<struct duplet> myList;
}
编译器抛出以下错误:
错误C3203:'Duplet':非专业化的类模板不能用作模板参数'T'的模板参数,期望是真实的类型
我是绊脚石或非法声明的语法错误吗?
谢谢, de costo
答案 0 :(得分:2)
我认为仅仅作为模板的duplet必须完全指定才能作为模板参数?编译器无法创建mylist实例,因为它不知道它是什么类型。 'duplet'不是(完整)类型; “小芯片&LT; T>某些类型T'是。
struct MyObject {
QList<struct duplet<int> > myList;
和
template <typename T>
struct MyObject {
QList<struct duplet<T> > myList;
为我编译就好了。