Компилятор 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 ++ для этой проблемы?
Среда:
Задача ещё не решена.