问题:
已知a和b是C++源代码(代码的其它部分都保证正确)中已经合法声明、无歧义的标识符,作为表达式具有相同的非const对象类型。
指出表达式 a ^= b ^= a ^= b 有问题的地方。
要求完整地讨论各种情况,给出充分理由,最好有权威依据;不讨论具体语言实现。
坑点应该超出大部分人想象。提示反白可见:
1.undefined behavior
2.types
3.identical lvalue or not
4.language linkage
5.C++11
6.full-expression or not