Undefined behavior and sequence points reloaded
问题 Consider this topic a sequel of the following topic: Previous installment Undefined behavior and sequence points Let\'s revisit this funny and convoluted expression (the italicized phrases are taken from the above topic *smile* ): i += ++i; We say this invokes undefined-behavior. I presume that when say this, we implicitly assume that type of i is one of the built-in types. What if the type of i is a user-defined type? Say its type is Index which is defined later in this post (see below).