C ++ 11 typy powrotu auto i funkcji
Wiem o różnicy międzyauto
, auto&
, const auto
iconst auto&
(na przykład w pętli „dla każdej”), ale jedno, co mnie zaskoczyło, to:
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
}
Czy ktoś może mi powiedzieć, kiedy będziex
w wyrażeniuauto x = fun();
nie będzie tego samego typu, co typ wartości zwracanej przezfun()
?