VS2010包含带默认参数的函数调用的Qt lambda表达式的内部编译器错误?

时间:2015-05-04 12:32:39

标签: c++ visual-studio-2010 qt lambda default-parameters

VC ++编译器在以下代码段崩溃:

cat       feline
poodle    canine

控制台输出显示“......致命错误C1001:Interner Compilerfehler。”

实际上Qt的QMap::value被定义为

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");
});

当我传递第二个参数时,如

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

是有效的!有任何想法吗?是否有针对此问题的VC ++修补程序?

环境:

  • Visual Studio 2010(10.0.40219.1 SP1Rel)
  • Qt 5.1.1

0 个答案:

没有答案