Visual C++ 不执行返回值优化吗?
#include <cstdio>
struct Foo { ~Foo() { printf("Destructing...\n"); } };
Foo foo() { return Foo(); }
int main() { foo(); }
我编译并运行它:
cl /O2 test.cpp
test.exe
它打印:
破坏……
破坏……
为什么它不执行 RVO?
Visual C++ 不执行返回值优化吗?
#include <cstdio>
struct Foo { ~Foo() { printf("Destructing...\n"); } };
Foo foo() { return Foo(); }
int main() { foo(); }
我编译并运行它:
cl /O2 test.cpp
test.exe
它打印:
破坏……
破坏……
为什么它不执行 RVO?