This reduces the number of weak vtables vtkm generates, resulting in
a reduction of binary sizes for projects that include vtkm classes in
multiple translation units.
Class that need to be passed across dynamic library boundaries such as
DynamicArrayHandle need to be properly export. One of 'tricks' of this
is that templated classes such as PolymorphicArrayHandleContainer need
the Type and Storage types to have public visibility.
This makes sure that all vtkm storage tags have public visibility so
in the future we can transfer dynamic array handles across libraries.
Changing the macros of the methods of ArrayPortalStreaming to be only
for CONT (the control environment) rather than both CONT and EXEC (both
the control and export environments). ArrayPortalStreaming is really
only used in the control environment and passed to the default transport
where the data is copied to the execution environment.
My hope is that this change will eliminate some rather odd and non-
descriptive warnings on the dashboard.
Change the VTKM_CONT_EXPORT to VTKM_CONT. (Likewise for EXEC and
EXEC_CONT.) Remove the inline from these macros so that they can be
applied to everything, including implementations in a library.
Because inline is not declared in these modifies, you have to add the
keyword to functions and methods where the implementation is not inlined
in the class.