diff --git a/vtkm/cont/ArrayHandle.cxx b/vtkm/cont/ArrayHandle.cxx index db9bd4fe9..9fb6323ff 100644 --- a/vtkm/cont/ArrayHandle.cxx +++ b/vtkm/cont/ArrayHandle.cxx @@ -21,6 +21,36 @@ #define vtkm_cont_ArrayHandle_cxx #include +#ifdef VTKM_MSVC +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; + +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; + +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; + +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +template class VTKM_CONT_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +#endif + namespace vtkm { namespace cont { @@ -47,8 +77,8 @@ template class VTKM_CONT_EXPORT ArrayHandle< vtkm::Vec, Storage template class VTKM_CONT_EXPORT ArrayHandle< vtkm::Vec, StorageTagBasic>; template class VTKM_CONT_EXPORT ArrayHandle< vtkm::Vec, StorageTagBasic>; -template class VTKM_CONT_EXPORT ArrayHandle< vtkm::Vec, StorageTagBasic>; -template class VTKM_CONT_EXPORT ArrayHandle< vtkm::Vec, StorageTagBasic>; +template class VTKM_CONT_EXPORT ArrayHandle< vtkm::Vec, StorageTagBasic>; +template class VTKM_CONT_EXPORT ArrayHandle< vtkm::Vec, StorageTagBasic>; template class VTKM_CONT_EXPORT ArrayHandle< vtkm::Vec, StorageTagBasic>; template class VTKM_CONT_EXPORT ArrayHandle< vtkm::Vec, StorageTagBasic>; diff --git a/vtkm/cont/ArrayHandle.h b/vtkm/cont/ArrayHandle.h index 382259cc3..b9267e1cc 100644 --- a/vtkm/cont/ArrayHandle.h +++ b/vtkm/cont/ArrayHandle.h @@ -49,7 +49,7 @@ namespace internal { /// ArrayHandle class (or at least something that behaves exactly like one). /// The \c ArrayHandle template class inherits from this. /// -class ArrayHandleBase { }; +class VTKM_CONT_EXPORT ArrayHandleBase { }; /// Checks to see if the given type and storage can form a valid array handle /// (some storage objects cannot support all types). This check is compatible @@ -549,6 +549,37 @@ printSummary_ArrayHandle(const vtkm::cont::ArrayHandle &ar } //namespace vtkm::cont #ifndef vtkm_cont_ArrayHandle_cxx + +#ifdef VTKM_MSVC +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle::InternalStruct >; + +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; + +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; + +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +extern template class VTKM_CONT_TEMPLATE_EXPORT std::shared_ptr< vtkm::cont::ArrayHandle< vtkm::Vec, vtkm::cont::StorageTagBasic>::InternalStruct >; +#endif + namespace vtkm { namespace cont { @@ -575,8 +606,8 @@ extern template class VTKM_CONT_TEMPLATE_EXPORT ArrayHandle< vtkm::Vec, StorageTagBasic>; extern template class VTKM_CONT_TEMPLATE_EXPORT ArrayHandle< vtkm::Vec, StorageTagBasic>; -extern template class VTKM_CONT_TEMPLATE_EXPORT ArrayHandle< vtkm::Vec, StorageTagBasic>; -extern template class VTKM_CONT_TEMPLATE_EXPORT ArrayHandle< vtkm::Vec, StorageTagBasic>; +extern template class VTKM_CONT_TEMPLATE_EXPORT ArrayHandle< vtkm::Vec, StorageTagBasic>; +extern template class VTKM_CONT_TEMPLATE_EXPORT ArrayHandle< vtkm::Vec, StorageTagBasic>; extern template class VTKM_CONT_TEMPLATE_EXPORT ArrayHandle< vtkm::Vec, StorageTagBasic>; extern template class VTKM_CONT_TEMPLATE_EXPORT ArrayHandle< vtkm::Vec, StorageTagBasic>; } diff --git a/vtkm/cont/CoordinateSystem.h b/vtkm/cont/CoordinateSystem.h index d08fee814..d191adba0 100644 --- a/vtkm/cont/CoordinateSystem.h +++ b/vtkm/cont/CoordinateSystem.h @@ -125,6 +125,9 @@ public: vtkm::cont::ArrayHandleUniformPointCoordinates(dimensions, origin, spacing))) { } + VTKM_CONT + CoordinateSystem &operator=(const vtkm::cont::CoordinateSystem &src) = default; + VTKM_CONT vtkm::cont::DynamicArrayHandleCoordinateSystem GetData() const { diff --git a/vtkm/cont/Field.h b/vtkm/cont/Field.h index 782e39875..3fe94f9e0 100644 --- a/vtkm/cont/Field.h +++ b/vtkm/cont/Field.h @@ -335,6 +335,9 @@ public: //Generate an empty field } + VTKM_CONT + Field &operator=(const vtkm::cont::Field &src) = default; + VTKM_CONT const std::string &GetName() const {