gpt4 book ai didi

c++ - 如何编写嵌套的 Initialiser 列表,例如 QPairs 的 QVector

转载 作者:太空宇宙 更新时间:2023-11-04 13:01:58 25 4
gpt4 key购买 nike

警告:

qvector.h(509): warning C4127: conditional expression is constant (main.cpp) qvector.h(506) : while compiling class template member function 'QVector>::QVector(std::initializer_list)' being compiled with [T=QPair]

see reference to function template instantiation 'QVector>::QVector(std::initializer_list)' being compiled

我的代码:

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

构建良好,我只是希望警告消失(不更改警告级别)。我做错了什么?

/* 编辑 */

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

最佳答案

这个警告似乎是不可避免的,而且与我的初始化列表关系不大,而与 qvector 关系更大。Qvector 检查的任何构造函数

  if (QTypeInfo<T>::isComplex)

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

template <typename T>
class QTypeInfo { enumbla;}

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

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

所以 if 查找适当 QTypeInfo 类的枚举值,它是一个常量,因为它是一个枚举耶!

耶,不可避免的警告,还有更多要抑制的东西!

关于c++ - 如何编写嵌套的 Initialiser 列表,例如 QPairs 的 QVector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43772997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com