From a purely object-oriented perspective, "copy semantics" is the right way to preserve control over object ownership. But in those scenarios where ownership becomes irrelevant, C++11 "move semantics ...
Sequence points are one of C's dark corners that trip people up. While it's easy to brush C off as a super-assembly language it's actually quite rich, expressive and has some dark holes that elude too ...