VS2010 Внутренняя ошибка компилятора в лямбда-выражениях Qt, содержащих вызовы функций с параметрами по умолчанию?

Компилятор VC ++ падает в следующем фрагменте кода:

class MyClass : public QObject {
public:
void onFinished(std::function<void(const QMap<QString, QVariant> &args)> cb) ;
// ...
}

MyClass *request;
// ...
request->onFinished([] (const QMap<QString, QVariant> &args) -> void {
QVariant c = args.value("valid");
});

Вывод на консоль гласит: «… фатальная ошибка C1001: Interner Compilerfehler».

На самом деле Qt’s QMap :: значение определяется как

const T value(const Key & key, const T & defaultValue = T()) const

и когда я передаю второй аргумент, как

QVariant c = args.value("valid", QVariant());

это работает! Есть идеи? Существуют ли исправления VC ++ для этой проблемы?

Среда:

  • Visual Studio 2010 (10.0.40219.1 SP1Rel)
  • Qt 5.1.1

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector