SharedByValue code (and things using it like String/Iterator etc) to have Clone method return shared_ptr<T> instead of plain T*. That made larger code but will be safer, and probably can be shrunk to original code size (I can think of no good reason why returning shared_ptr<T> there would be intrisnically slower/fatter - but may need to revisit
Comments