【发布时间】:2013-11-04 10:19:33
【问题描述】:
iter++->empty() 是合法表达吗?
iter 是 iterator 的 vector 的 strings。
我问是因为考虑到运算符的优先级,-> 和 () 都应该在后缀增量之前,但我真的不知道应该如何对操作数进行分组。
在我的编译器上它可以工作(表达式为第一个字符串生成 empty() 结果,iter 指向第二个字符串)但我仍然想知道它是否是未定义的行为。
编辑
我刚刚找到了解决方案(我认为):
iter++->empty() 应与(*iter++).empty() 相同
因此考虑到关联性和优先级规则,分组应该是:
(((*(iter++)).empty) ())
对吗?
【问题讨论】:
标签: c++ post-increment