gpt4 book ai didi

c++ - 具有三元运算符的函数类型

转载 作者:行者123 更新时间:2023-11-30 03:33:14 25 4
gpt4 key购买 nike

我试试这段代码:

    int a=1;
std::function<int (int, int)> getM = a?
[](int x, int y) {
return (x+y);
} :
[](int x, int y) {
return (x*y);
};


cout<<getM(1,2);

在 visual studio 中它给出了一个错误:错误 C2446:“:”:没有从“wmain::”到“wmain::”的转换1> 没有可用的可以执行此转换的用户定义转换运算符,或者无法调用该运算符

在 GCC 中它被编译。我想 GCC 是正确的行为,但我不确定。在 VS2013 上执行此操作还有哪些其他选项?

最佳答案

我可以确认它也不是使用 VS 2015 update 3 构建的。

What are other options?

好吧,标准的 if/else 始终是任何三元运算的替代方案:

std::function<int (int, int)> getM;;

if (a)
getM = [](int x, int y) { return (x + y); };
else
getM = [](int x, int y) { return (x * y); };

关于c++ - 具有三元运算符的函数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43124846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com