Declare StorageTags with VTKM_ALWAYS_EXPORT

This modifier is required on OSX for dynamic_cast to work properly
across libraries.
This commit is contained in:
Kenneth Moreland 2020-01-03 23:46:43 -07:00
parent 1ec716e5d2
commit bfd21dfae2
9 changed files with 13 additions and 13 deletions

@ -155,7 +155,7 @@ namespace cont
{ {
template <typename StorageTag1, typename StorageTag2, typename StorageTag3> template <typename StorageTag1, typename StorageTag2, typename StorageTag3>
struct StorageTagCartesianProduct struct VTKM_ALWAYS_EXPORT StorageTagCartesianProduct
{ {
}; };

@ -25,7 +25,7 @@ namespace cont
{ {
template <typename SourceT, typename SourceStorage> template <typename SourceT, typename SourceStorage>
struct StorageTagCast struct VTKM_ALWAYS_EXPORT StorageTagCast
{ {
}; };
@ -124,7 +124,7 @@ struct ArrayHandleCastTraits<TargetT, SourceT, SourceStorage, true, true>
} // namespace detail } // namespace detail
template <typename TargetT, typename SourceT, typename SourceStorage> template <typename TargetT, typename SourceT, typename SourceStorage>
struct Storage<TargetT, StorageTagCast<SourceT, SourceStorage>> struct Storage<TargetT, vtkm::cont::StorageTagCast<SourceT, SourceStorage>>
: detail::ArrayHandleCastTraits<TargetT, SourceT, SourceStorage>::StorageSuperclass : detail::ArrayHandleCastTraits<TargetT, SourceT, SourceStorage>::StorageSuperclass
{ {
using Superclass = using Superclass =
@ -134,7 +134,7 @@ struct Storage<TargetT, StorageTagCast<SourceT, SourceStorage>>
}; };
template <typename TargetT, typename SourceT, typename SourceStorage, typename Device> template <typename TargetT, typename SourceT, typename SourceStorage, typename Device>
struct ArrayTransfer<TargetT, StorageTagCast<SourceT, SourceStorage>, Device> struct ArrayTransfer<TargetT, vtkm::cont::StorageTagCast<SourceT, SourceStorage>, Device>
: detail::ArrayHandleCastTraits<TargetT, : detail::ArrayHandleCastTraits<TargetT,
SourceT, SourceT,
SourceStorage>::template ArrayTransferSuperclass<Device> SourceStorage>::template ArrayTransferSuperclass<Device>

@ -102,7 +102,7 @@ private:
} // namespace internal } // namespace internal
template <typename StorageTag1, typename StorageTag2> template <typename StorageTag1, typename StorageTag2>
class StorageTagConcatenate class VTKM_ALWAYS_EXPORT StorageTagConcatenate
{ {
}; };

@ -17,7 +17,7 @@ namespace vtkm
namespace cont namespace cont
{ {
struct StorageTagConstant struct VTKM_ALWAYS_EXPORT StorageTagConstant
{ {
}; };

@ -20,7 +20,7 @@ namespace vtkm
namespace cont namespace cont
{ {
struct StorageTagCounting struct VTKM_ALWAYS_EXPORT StorageTagCounting
{ {
}; };

@ -17,7 +17,7 @@ namespace vtkm
namespace cont namespace cont
{ {
struct StorageTagIndex struct VTKM_ALWAYS_EXPORT StorageTagIndex
{ {
}; };
@ -34,14 +34,14 @@ using StorageTagIndexSuperclass =
typename vtkm::cont::ArrayHandleImplicit<IndexFunctor>::StorageTag; typename vtkm::cont::ArrayHandleImplicit<IndexFunctor>::StorageTag;
template <> template <>
struct Storage<vtkm::Id, StorageTagIndex> : Storage<vtkm::Id, StorageTagIndexSuperclass> struct Storage<vtkm::Id, vtkm::cont::StorageTagIndex> : Storage<vtkm::Id, StorageTagIndexSuperclass>
{ {
using Superclass = Storage<vtkm::Id, StorageTagIndexSuperclass>; using Superclass = Storage<vtkm::Id, StorageTagIndexSuperclass>;
using Superclass::Superclass; using Superclass::Superclass;
}; };
template <typename Device> template <typename Device>
struct ArrayTransfer<vtkm::Id, StorageTagIndex, Device> struct ArrayTransfer<vtkm::Id, vtkm::cont::StorageTagIndex, Device>
: ArrayTransfer<vtkm::Id, StorageTagIndexSuperclass, Device> : ArrayTransfer<vtkm::Id, StorageTagIndexSuperclass, Device>
{ {
using Superclass = ArrayTransfer<vtkm::Id, StorageTagIndexSuperclass, Device>; using Superclass = ArrayTransfer<vtkm::Id, StorageTagIndexSuperclass, Device>;

@ -71,7 +71,7 @@ private:
} }
template <typename ArrayHandleType> template <typename ArrayHandleType>
class StorageTagReverse class VTKM_ALWAYS_EXPORT StorageTagReverse
{ {
}; };

@ -19,7 +19,7 @@ namespace vtkm
namespace cont namespace cont
{ {
struct StorageTagUniformPoints struct VTKM_ALWAYS_EXPORT StorageTagUniformPoints
{ {
}; };

@ -82,7 +82,7 @@ private:
} // namespace internal } // namespace internal
template <typename ArrayHandleType> template <typename ArrayHandleType>
struct StorageTagView struct VTKM_ALWAYS_EXPORT StorageTagView
{ {
}; };