在C++中,A + = B优于A = A + B,同样地,++ A是A ++?
我知道"++ A"预增量至少与"A ++"后增量一样快.这里讨论了许多地方,包括这里和这里.同样,预期A + = B至少与A = A + B一样快,如此处所示.
我在看这个++:
//From https://herbsutter.com/2013/05/13/gotw-2-solution-temporary-objects/
T T::operator++(int)() {
auto old = *this; // remember our original value
++*this; // always implement postincr in terms of preincr
return old; // return our original value
}
Run Code Online (Sandbox Code Playgroud)
我的理由是,在最坏的情况下(可能来自复杂的对象类型)A = A + B必须检索并存储A并在将其保存回原始A位置之前添加B,而A + = B将采用B并添加直接到A.我的推理是否正确?
期望基本类型在编译时重新排列为相同,并且这实际上仅适用于需要运算符重载的复杂对象.
这是否一般扩展到大多数命令式语言?
c++ ×1