The documentation for [btDiscreteDynamicsWorld](http://bulletphysics.org/Bullet/BulletFull/classbtDiscreteDynamicsWorld.html#a8540038474d43063708b01c72b376965) says that it doesn't delete any of the pointers passed to the constructor. Thus, they should all be wrapped in std::unique_ptr to avoid memory leaks.