Oh god, what monstrocity have we created?!?
All this complexity follows unique_ptr and copy constructor madness.
Anything with pointers with ownership should never be copied - period. Reference pointers - OK if scope/lifetime is known.
Can we have c++11 lite?
So data structures like std::vector should never be copied - period?