[boost] How to create a shallow copy without calling a constructor?