如何修复const char*必须匹配以前的返回类型错误


int plugin::feature(const InstanceInput &input) {
auto parse_word=[](const string input_text){
string text = input_text;
int i=text.find("%");
if(i!=-1){
return text.substr(0, i);
}
return "";
};
....
}

我在Clion,它在"return"语句中显示一条错误消息,上面写着:

return type const char* must match previous return type std:basic_string<char> when lambda expression has unspecified specific return type 

如何解决此问题?

代替:

if(i!=-1){
return text.substr(0, i);
}
return "";

尝试

if(i!=-1){
return text.substr(0, i);
}
return std::string();

在第一种情况下,您的λ的auto返回类型被确定为string,在第二种情况下被确定为char*,这是不匹配的。

相关内容

最新更新