以下代码是标准未定义的吗?
int fingers = 10;
int more = (fingers = 10);
// or
// int more = fingers = 10;
与上述相同的答案是否适用于
std::map
?
std::map<int, int> arms;
int bicep = (arms[200] = 10);
以下代码是标准未定义的吗?
不,代码格式良好。内置赋值
operator=
通过引用返回左侧操作数,然后将其用作 more
的初始值设定项。
=
是一个与其他运算符一样的运算符。与其他运算符一样,它有一个明确定义的返回值 - 它刚刚分配的值。您的代码中没有任何未定义的内容。