为什么范围运算符不适用于QDomNodeList

时间:2017-05-03 12:32:39

标签: c++ qt

到目前为止,范围运算符已经处理了我使用的任何Qt列表类型,QDomNodeList除外。由于范围运算符定义为:"用作在一系列值上运行的传统for循环的更具可读性的等价物,例如容器中的所有元素。" i无法看到任何理由......

QDomNodeList domNodes = doc.elementsByTagName("peripheral");

for (QDomNode node : domNodes)
{
    qDebug() << node.nodeName() << "test";
}

...不会编译,但普通的旧for循环将:

QDomNodeList domNodes = doc.elementsByTagName("peripheral");

for (int i = 0; i < domNodes.size(); ++i)
{
    QDomNode node = domNodes.at(i);
    qDebug() << node.nodeName() << "test";
}

编译器输出似乎很明显:

error: 'begin' was not declared in this scope
     for (QDomNode node : domNodes)
...
note:   'std::begin'
     begin(_Tp (&__arr)[_Nm])
     ^
                          ^

std::end加上相同的错误。

0 个答案:

没有答案