2017-05-04 50 views
0
的QVector

警告:如何写嵌套列表初始化剂,例如QPairs

qvector.h(509):警告C4127:条件表达式是恒定的(main.cpp中) qvector.h(506):在编译类模板的成员函数 'QVector> :: QVector(标准:: initializer_list)' 被编译与[T = QPair]

见参考起作用模板实例“QVector> :: QVector(标准:: initializer_list )'正在编译

我的代码:

QVector< QPair< double, float> > container(
     {{40, 0.0f}, 
     {70, 0.95f}, 
     {80, 0.7f}} 
); 

它建立好,我只想去警告(不改变的警戒线)。我究竟做错了什么?

/*编辑*/

没有人对警告是什么意见吗?究竟是什么意思?,其他人是否有警告?我查阅了关于QVectors的初始化列表的QT文档,但没有多说。一般来说,没有人有任何关于函数模板实例的说法吗?

+0

是你的粘贴中缺少的分号? –

+0

哈哈是的;)谢谢。 认为编译器会在这种情况下努力建设 – codeMetis

回答

0

这个警告似乎是不可避免的,与我的初始化列表不太一样,更多与qvector有关。 为Qvector任何构造检查

if (QTypeInfo<T>::isComplex) 

这是一个简单枚举值,有几个班,没有模板,模板*,或模板下面列出的类名称声明的语法。愿意向我解释!

template <typename T> 
class QTypeInfo { enumbla;} 

template<> 
class QTypeInfo<void> { enumbla;} 

template <typename T> 
class QTypeInfo<T*> { enumbla;} 

因此,如果查找该适当QTypeInfo类,它是一个常数作为一个枚举耶枚举值!

Yay不可避免的警告,更多的事情要压制!