error: could not convert ‘{{QAF_NET_DIAG_CFUN_CHECK, <lambda closure object>NwDiagApplication::startDiag(long int, int64_t)::<lambda(void*)>{}}}’ from ‘<brace-enclosed initializer list>’ to ‘std::map<int, std::function<NwDiagBase*()> >’ };
时间: 2024-03-27 11:38:28 浏览: 136
这个错误是因为你试图将一个大括号括起来的初始化列表转换为`std::map<int, std::function<NwDiagBase*()> >`类型,但是这是不允许的。
你可以尝试将初始化列表中的每一项转换为std::pair,然后使用std::map的构造函数进行初始化,例如:
```
std::map<int, std::function<NwDiagBase*()> > myMap {
{QAF_NET_DIAG_CFUN_CHECK, [](){ return new MyNwDiagBase; }},
{anotherKey, [](){ return new AnotherNwDiagBase; }},
//...更多的键值对
};
```
在这个示例中,你需要将`MyNwDiagBase`和`AnotherNwDiagBase`替换为你自己的NwDiagBase子类。
阅读全文