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>
struct StorageTagCartesianProduct
struct VTKM_ALWAYS_EXPORT StorageTagCartesianProduct
{
};

@ -25,7 +25,7 @@ namespace cont
{
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
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
{
using Superclass =
@ -134,7 +134,7 @@ struct Storage<TargetT, StorageTagCast<SourceT, SourceStorage>>
};
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,
SourceT,
SourceStorage>::template ArrayTransferSuperclass<Device>

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

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

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

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

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

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

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