Check that all execution objects are trivially copyable
When the dispatcher does it's "transport" phase, it returns an "execution object", but this object is held in the control environment (on the host) although it may point to resources in the execution environment (on the device). For this object to get from host to device, it must be trivially copyable. If it is not, compile and/or runtime errors could occur. So force this condition with a static assert.
Edited by Kenneth Moreland