On Friday, 12 September 2014 at 08:50:17 UTC, po wrote:
But using modern C++11/14 + TBB it really isn't hard at all.
It is fairly trivial to scale to N cores using a task based
approach. Smart pointers are rarely used, most C++ stuff is
done by value.
Strings too?
For instance, I work on a game engine, almost everything is
either by value or unique.
The only stuff that is "shared" and thus is requires ref
counting are external assets(shaders,models,sounds, some gpu
resources). These objects are also closed, and thus incapable
of circular references.
For closed external resources one can often figure out ownership
and if it's done, you don't even need smart pointers, as you
already know, where to destroy the object. The difficult task is
to do it for all allocated memory everywhere. Duplication is
certainly possible, but it kinda goes against efficiency.