Add default constructors/destructors/assignment to ArrayHandle classes
The ArrayHandle classes all exclusively work in the control environment. However, CUDA likes to add __device__ to constructors, destructors, and assignment operators it automatically adds. 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. Implemented this by wrapping up all these default objects in a macro. This also solved the problem of other constructors that are necessary for array handles such as a constructor that takes the base array handle.
Showing with 169 additions and 254 deletions