分配操作员是否"需要"返回?

pau*_*l23 8 c++ standards

根据C++标准,我可以确定内置变量的赋值运算符返回(原始值)吗?

或者这个实现是依赖的(但是只是让最流行的编译器实现了这个)?

Unc*_*ens 10

是的,保证:

5.17赋值和复合赋值运算符

赋值运算符(=)和复合赋值运算符都是从右到左分组.所有都需要一个可修改的左值作为左操作数,并返回一个左值操作数的左值.

这适用于内置类型.使用用户定义的类型,它可以返回任何内容.


Kei*_*son 5

这取决于你所说的"原始价值".

例如:

#include <iostream>
int main() {
    int i;
    std::cout << (i = 1.9) << "\n";
}
Run Code Online (Sandbox Code Playgroud)

打印1.赋值表达式产生LHS的新值(即1),而不是RHS的"原始值"(1.9).

我不确定这是不是你要问的问题.