我知道、和(例如在“for each”循环中)之间的区别auto
,但让我感到惊讶的是:auto&
const auto
const auto&
std::string bla;
const std::string& cf()
{
return bla;
}
int main (int argc, char *argv[])
{
auto s1=cf();
const std::string& s2=cf();
s1+="XXX"; // not an error
s2+="YYY"; //error as expected
}
那么有人能告诉我x
表达式中的类型何时auto x = fun();
与返回值的类型不同fun()
吗?