2013-09-16 3 views
4

Пожалуйста, обратите внимание на этот фрагмент кода:Что означает «дублировать тип данных в декларации»?

QList< cContainers * > containerList; 

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

Я использую Qt Creator 2.8.0, с Qt 5.1.0 под Ubuntu 13.04. Я также использую Clang 3.2.1 в качестве компилятора.

Приведенный выше код не компилируется нормально (без ошибок, без предупреждений), но QtCreator подчеркивает отмеченную строку кода с красной линии (как это происходит с ошибками):

enter image description here

Если я наведите указатель мыши на него, он говорит «дублировать тип данных в декларации», и я понятия не имею, что это значит. Это самая простая лямбда, и я не вижу никаких проблем с ней, так почему это происходит? Это ошибка подсветки синтаксиса QtCreator?

ответ

7

Я думаю, что эта ошибка уже сообщалась в bugtracker QtCreator: возвращаемый тип Lambda «void» воспринимается как «дублированный тип данных в декларации».

[ошибка # 8773] (https://bugreports.qt.io/browse/QTCREATORBUG-8773)

+0

Да, похоже, соответствуют моему случаю;) Спасибо. – SingerOfTheFall

Смежные вопросы