Make separate exec and cont versions of Variant
The Variant
class is templated to hold objects of other types.
Depending on whether those objects of are meant to be used in the
control or execution side, the methods on Variant
might need to be
declared with (or without) special modifiers. We can sometimes try to
compile the Variant
methods for both host and device and ask the
device compiler to ignore incompatibilities, but that does not always
work.
To get around that, create two different implementations of Variant
.
Their API and implementation is exactly the same except one declares its
methods with VTKM_CONT
and the other its methods VTKM_EXEC
.
Edited by Kenneth Moreland