是iter++->empty()法律表达吗?
iter是iterator的一个vector的string第
我问,因为考虑运算符的优先级,->并且()应该在postfix增量之前,但我真的不知道操作数应该如何分组.
在我的编译器上它工作(表达式产生empty()第一个字符串的结果并iter指向第二个字符串)但我仍然想知道它是否是未定义的行为.
编辑
我刚刚找到解决方案(我认为):
iter++->empty() 应该是一样的 (*iter++).empty()
因此,考虑到关联性和优先级规则,分组应该是:
(((*(iter++)).empty) ())
那是对的吗?
这是合法的,但不要这样做.
问自己这个问题是足够的理由将其分为两个陈述:
iter->empty();
iter++;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
174 次 |
| 最近记录: |