次のコードがあります
string three()
{
return "three";
}
void mutate(string& ref)
{
}
int main()
{
mutate(three());
return 0;
}
three()をmutateメソッドに渡していることがわかります。このコードはうまくコンパイルされます。私の理解では、一時変数を非 const 参照に割り当てることはできません。はいの場合、このプログラムはどのようにコンパイルされていますか?
何かご意見は?
編集:
試したコンパイラ: VS 2008 および VS2010 Beta