是iter++->empty()合法表达吗?
iter是s中iterator的一个。vectorstring
我问是因为考虑到运算符的优先级,->并且()应该在后缀增量之前,但我真的不知道应该如何对操作数进行分组。
在我的编译器上它可以工作(表达式产生empty()第一个字符串的结果并iter指向第二个字符串)但我仍然想知道它是否是未定义的行为。
编辑
我刚刚找到了解决方案(我认为):
iter++->empty()应该是一样的(*iter++).empty()
因此考虑关联性和优先规则,分组应该是:
(((*(iter++)).empty) ())
那是对的吗?