假设我有以下代码:
std::vector<std::string> foo({"alice", "bob"});
for (const std::string &f : foo)
std::cout << f.size() << std::endl;
如果我犯了一个错误并更改f.size()
为f->size()
,我会从 GCC 收到以下错误:
错误:'->' 的基本操作数具有非指针类型 '<strong>const string {aka const std::basic_string}
为什么是实际类型const std::basic_string<char>
而不是const std::basic_string<char> &
(参考)?