【发布时间】:2018-12-08 08:22:49
【问题描述】:
我想写一个指向函数的指针,带有引用返回类型
string & cmp(string &s1, string &s2) {
return s1.size() > s2.size() ? s1 : s2;
}
函数 cmp 很简单,它只是返回较长的字符串。
string string1 = "123";
string string2 = "1234";
string & (*pf)(string &,string &) = cmp;
可以打电话
string &temp = cmp(string1, string2);
但是当我尝试使用pf时,
string &temp = pf(string1, string2);
编译器显示错误:expression must be lvalue
补充:抱歉,IDE 提供的检查信息似乎有误。
我使用CLion作为IDE,红色下划线显示错误,但实际上我可以编译并成功运行....很奇怪,有人知道我的IDE检查出了什么问题吗?或者我可能需要在 CLion 社区发布问题?
【问题讨论】:
-
我无法重现你提到的错误,对我来说这编译和运行得很好?!
-
请提供minimal reproducible example。您的 sn-ps 信息不足以重现您的问题,如您所见 here
-
你使用的是哪个编译器?
-
@lubgr 抱歉,我的 IDE 似乎给出了错误的检查错误....查看我的更新
-
好吧,如果您认为这是一个错误,请检查您的 IDE 设置两次,如果您无法修复此警告,您可能需要将其报告给 JetBrains。