【发布时间】:2019-08-30 12:26:09
【问题描述】:
我有这个简单的 lambda:
std::variant<int, char> myLambda = []() { // no suitable user-defined conversion from "type" to "std::variant<int, char>" exists
std::variant<int, char> res;
if (true)
{
res = 1;
}
else
{
res = 'c';
}
return res;
};
但它不能编译,产生错误no suitable user-defined conversion from "type" to "std::variant<int, char>" exists。我做错了什么?
【问题讨论】:
-
您需要调用 lambda 将最后一个
};更改为}();Typo? -
@RichardCritten 不,我只想初始化 lambda,而不是调用它。
-
@RichardCritten 但是,你让我明白我的错误,谢谢!
-
2 个解决方案的问题....我建议了错误的一个。很高兴下面的答案对您有所帮助。
-
可能:
auto myLambda = [&]() -> std::variant<int, char> { if (cond) { return 1; } else { return 'c'; }}};.