++structure.field 中的运算符层次结构

Operator hierarchy in ++structure.field

例子:

++structure.field;

递增 field 而不是给出 "wrong type argument to increment" 编译器错误,尽管 ++ 和 .运算符是等层次的,因此:应该从左到右执行。

我是不是漏掉了什么?

前缀和后缀 ++ 具有不同的优先级。 . 的优先级高于 prefix 增量运算符,如 cppreference.com.

所示

.postfix 增量具有相同的优先级。如果您写 structure.field++ 那么它们将具有相同的优先级,并且关联性将作为 (structure.field)++ 而不是 structure.(field++) 来解决歧义。