gpt4 book ai didi

c++ - 如何调用模板函数 QList::operator<< 的非专用版本

转载 作者:行者123 更新时间:2023-11-30 03:02:56 25 4
gpt4 key购买 nike

情况

我有一个 QList<QVariant>每个QVariant项目应该是 QList<QVariant>它自己的。要填充列表,我想使用 QList::operator<< , 它重载了一个const T & value更专业const QList<T> & other .

问题

当我运行以下代码时:

QList<QVariant> rootList;
QList<QVariant> subList = QList<QVariant>() << 1 << 2 << 3;
rootList << subList;

这里的最后一行将调用 operator<< ( const QList<T> & other )函数,据我所知,因为这是匹配 subList 类型的更专业的函数.结果列表将如下所示:

rootList: [1, 2, 3]

当我希望它看起来像这样时:

rootList: [[1, 2, 3]]

如何强制调用非专用版本的 QList::operator<<

解决方法

我意识到有一个 QList::push_back未为 QList<T> 重载的函数,这就是我正在寻找的。但是,我不想依赖仅“为 STL 兼容性提供”的功能。

最佳答案

您可以显式地将 QVariantList 转换为 QVariant:

rootList << (QVariant)subList;

rootList << QVariant(sublist);

关于c++ - 如何调用模板函数 QList::operator<< 的非专用版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9790814/

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