2
void foo(const C &);
foo(C());
在這種情況下,臨時C
對象住直到foo()
結束。C++臨時對象的生命週期
但我的問題是:
struct C { operator int(); }
void bar(int i);
bar(C());
在這種情況下,有沒有臨時C
對象住,直到bar()
結束了嗎?如果沒有,有沒有辦法讓臨時對象直到bar()
結束?
編輯:感謝user2109558,我知道代碼不起作用。然後下面的代碼工作正常嗎?
void bar(int i);
void bar(C &&c) { bar(c); }
接受的答案不正確。見http://stackoverflow.com/questions/584824/guaranteed-lifetime-of-temporary-in-c –
@MarkRansom嗯..?所以吧(C())可以嗎? – ikh
閱讀答案併爲自己做出判斷。我的結論是,這是可以的。 –