4

请看一下这段代码:

QList< cContainers * > containerList;

auto wasAlreadyMoved = [&containerList]( cItem * item ) -> bool { //<---------
    for( cContainer * tmp : containerList )
        if( tmp->contains( item ) )
            return true;
    return false;
};

我在 Ubuntu 13.04 下使用 Qt Creator 2.8.0 和 Qt 5.1.0。我还使用 Clang 3.2.1 作为编译器。

上面的代码编译得很好(没有错误,没有警告),但是QtCreator 用红线在标记的代码行下划线(与错误一样):

在此处输入图像描述

如果我将鼠标悬停在它上面,它会显示“声明中的重复数据类型”,我不知道这是什么意思。这是最简单的 lambda,我看不出它有任何问题,那为什么会发生呢?它是 QtCreator 语法突出显示的错误吗?

4

1 回答 1

7

我认为这是 QtCreator bugtracker 中已经报告的这个错误:Lambda 的返回类型“void”被认为是“声明中的重复数据类型”。

[错误 #8773] ( https://bugreports.qt.io/browse/QTCREATORBUG-8773 )

于 2013-09-16T12:44:30.070 回答