前缀递增运算符错误 C++
Prefix increment operator error C++
我猜这与优先级有关,但为什么这是合法的
vector<string>::iterator iter = vec.begin();
iter++->empty();
但这不是。
vector<string>::iterator iter = vec.begin();
++iter->empty();
谁能解释一下这里发生的事件链。
箭头运算符的优先级高于增量,因此 ++iter->empty()
被解析为 ++(iter->empty())
,而不是 (++iter)->empty()
。 post-increment 版本有效,因为只有一种方法可以解析 iter++->empty()
.
我猜这与优先级有关,但为什么这是合法的
vector<string>::iterator iter = vec.begin();
iter++->empty();
但这不是。
vector<string>::iterator iter = vec.begin();
++iter->empty();
谁能解释一下这里发生的事件链。
箭头运算符的优先级高于增量,因此 ++iter->empty()
被解析为 ++(iter->empty())
,而不是 (++iter)->empty()
。 post-increment 版本有效,因为只有一种方法可以解析 iter++->empty()
.