Array C[]=A[]*B[] in high-performance calculation@Billy: Then you have never programmed in any language other than C/C++? Seriously, twiddling pointers is much more likely to confuse a compiler (and a human reader, too) than simple array references.

Overloading [] in C++ to return lvalue@Luc: I actually tried implementing something like that for kicks, but it falls down as soon as you try to use it... smartref<A> foo = A() works, but foo.doSomething() fails. That is what I meant by "you cannot overload the dot operator".

What's such instruction for?Note that this emits no code, so it is not a general-purpose memory barrier. It does prevent GCC from re-ordering memory accesses across the statement, but it does not prevent the CPU from doing so. Hence it functions as a barrier only on CPUs that do not themselves re-order memory accesses.