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