我在考虑这样的事情:
auto c = []() -> (int*) {int * b; b = new int(); b[0]=2; return b;};
Run Code Online (Sandbox Code Playgroud)
很抱歉,如果cuestion非常愚蠢,但我不确定为什么会产生编译错误:
Run Code Online (Sandbox Code Playgroud)main.cpp:3:18: error: expected type-specifier before '(' token auto c = []() -> (int*) {int * b; b = new int(); b[0]=2; return b;};
删除周围的括号int*.你没有声明变量(int*) p,所以为什么在返回类型中括号?
这正确编译:
auto c = []()->int* {int * b; b = new int(); b[0]=2; return b;};
Run Code Online (Sandbox Code Playgroud)