【发布时间】:2022-11-03 13:00:29
【问题描述】:
尝试编译以下代码,无法理解错误消息。
#include<iostream>
#include<string>
using namespace std;
struct S {
string a{"abc"};
const string& data() { return a; }
};
int main() {
S s;
int a = s.data(); // error: no viable conversion from 'const std::string' to 'int'
return 0;
}
问题:为什么编译器说 'const std::string' 而不是 'const std::string&'?
尝试使用 Apple clang 14.0.0 和 g++ 12,同样的错误消息。
【问题讨论】:
标签: c++