【发布时间】:2017-03-10 15:28:59
【问题描述】:
我在 c++ 中有这个 sn-p 代码:
std::vector<int> v1;
std::vector<int> v2;
...
if (v1.insert(v1.end(), v2.begin(), v2.end()) == v1.end())
{
return 0;
}
首先计算哪个表达式?调试时,首先评估“==”运算符的右侧,这是正确的行为吗?
【问题讨论】:
-
this 有帮助吗?
-
这是未定义的行为。除了一些特定的运算符(&&、||、逗号、?:)之外,标准没有定义操作数的评估顺序。
-
@greg 这里没有 UB。您的意思是未确定?
-
@πάνταῥεῖ 是的,说得好。
-
@πάνταῥεῖ:您要查找的词是“未指定”(不要与“不确定值”混淆)。
标签: c++ associative