The only issues I can think of are going to be results of misuse and shouldn't be intended operation. However, the main concern is that in practical code it may be difficult to identify and isolate issues which could crop up. The question is do we try to provide safer code, more efficient code, or both? I had some questions about general cleanup planned. What compiler-specific code should the re-write reasonably have to take into account? Only standard-compliant features, or are there some notable exceptions of known issues? I'm assuming we're going to at a minimum support C++03 and C++11 versions. Also, should we worry about maintaining the NRVO code? The last thing I can think of is what about the left operators? Should they be provided in a similar fashion like commutative/non commutative?