CUDA default constructors, destructors, and assignment operators
Several classes exclusively work in the control environment. However, CUDA likes to add device to constructors, destructors, and assignment operators it automatically creates. This in turn causes warnings about the device function using host-only classes (like boost::shared_ptr). Solve this problem by adding explicit methods for all of these.