gpt4 book ai didi

c++ - 无法在 VS 14 CTP : conditional expression of type 'void' is illegal 中使用 auto 声明 lambda

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:23:02 24 4
gpt4 key购买 nike

使用 Visual Studio 2014 CTP、C++ (v140) 编译器:

auto gp = [&](BYTE* buff) {
auto gp1 = [](char* bff, char** p1) {
*p1 = strstr((char*)bff, "(");
return (*p1);
};
};

错误:

conditional expression of type 'void' is illegal

(也许 auto 真的输入错误?)

如果我将内部 lambda 声明为 std::function<char*(char*, char**)> gp1然后就可以了

是我做错了什么还是编译器错误?

最佳答案

我没有运行 2014,但您可能需要指定内部 lambda 的返回类型(可能默认为 void),使用 '-> char*',如下所示:

auto gp = [&](BYTE* buff) {
auto gp1 = [](char* bff, char** p1) -> char* {
*p1 = strstr((char*)bff, "(");
return (*p1);
};
};

关于c++ - 无法在 VS 14 CTP : conditional expression of type 'void' is illegal 中使用 auto 声明 lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24052733/

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