有这样的C++优化吗?

Aft*_*ock 0 c++ optimization

例如

vector<string> a;

vector<string> b;

a.push_back("first");

b=a;
Run Code Online (Sandbox Code Playgroud)

是否会以某种方式进行优化

vector<string> b;

b.push_back("first");
Run Code Online (Sandbox Code Playgroud)

Lir*_*una 5

简短回答:是的.

答案很长:不是真正的"优化",因为大多数现代编译器(读作:非MSVC)都会这样做.它被称为静态单一赋值(SSA),GCC从版本4.0开始支持它 - 它也踢了屁股!

  • SSA不会自动在此处申请.它通常应用于原始数据类型(或仅适用于寄存器),但在高级C++代码中,赋值和构造函数可能具有副作用,因此编译器必须检查是否可以安全地进行优化.是的,那肯定是一种优化. (4认同)