比方說,我有功能C++編譯器可以爲常量返回值執行RVO嗎?
#include <string>
std::string const foo()
{
std::string s = "bar";
return s;
}
int main()
{
std::string t = foo();
}
可以執行(命名)返回值優化t
,即使類型s
和t
是從foo
返回類型都不同,由於const
編譯器差異?
(如果答案是C++ 03和不同的C++ 11然後我在知道C++ 03的回答很有興趣。)
爲什麼不包含至少一個編譯器的實驗結果? –
@MarcGlisse:好吧,Visual C++ 2008優化了它,但我不確定標準是否真的允許它。 – Mehrdad