gpt4 book ai didi

c++ - 具有多个参数的模板的 Qt foreach

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:08:02 26 4
gpt4 key购买 nike

我在使用 qt foreach 和具有多个模板参数的模板时遇到了问题。

QVector<Node<T, U> > nodes;
...
[append some data]
...
foreach(const Node<T, U>& node, nodes) {
...
}

我收到这个错误:

error: use of undeclared identifier 'Q_FOREACH'

我猜这是由于模板中的 , 造成的,因为 Qt 宏没有检测到它位于另一个模板声明中。如何在不使用普通 for 循环或 C++11 的情况下解决这个问题?

最佳答案

如果你的编译器支持C++11,你可以使用

foreach(auto node, nodes) { ... }

甚至

for(auto node: nodes) { ... }

否则,您可以像这样强制预处理器忽略模板中的逗号:

#define COMMA ,
foreach(const Node<T COMMA U>& node, nodes) { ... }

或者你可以使用 typedef

typedef Node<T, U> NodeTU;
foreach(const NodeTU& node, nodes) { ... }

关于c++ - 具有多个参数的模板的 Qt foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14216510/

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