Merge topic 'fix-unknownah-circular-dependency'
bb7661c16 Fix recursive header file dependancies Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Li-Ta Lo <ollie@lanl.gov> Merge-request: !2552
This commit is contained in:
commit
bfb693c1d2
@ -12,6 +12,9 @@
|
||||
|
||||
#include <vtkm/internal/IndexTag.h>
|
||||
|
||||
#include <vtkm/cont/DefaultTypes.h>
|
||||
#include <vtkm/cont/UnknownArrayHandle.h>
|
||||
|
||||
#include <utility>
|
||||
|
||||
namespace vtkm
|
||||
@ -25,8 +28,6 @@ class Field;
|
||||
template <typename T, typename S>
|
||||
class ArrayHandle;
|
||||
|
||||
class UnknownArrayHandle;
|
||||
|
||||
template <vtkm::IdComponent>
|
||||
class CellSetStructured;
|
||||
template <typename T>
|
||||
@ -70,9 +71,13 @@ void CastAndCall(const vtkm::cont::ArrayHandle<T, U>& handle, Functor&& f, Args&
|
||||
/// A specialization of CastAndCall for UnknownArrayHandle.
|
||||
/// Since we have no hints on the types, use VTKM_DEFAULT_TYPE_LIST
|
||||
/// and VTKM_DEFAULT_STORAGE_LIST.
|
||||
// actually implemented in vtkm/cont/UnknownArrayHandle
|
||||
// Implemented here to avoid circular dependencies.
|
||||
template <typename Functor, typename... Args>
|
||||
void CastAndCall(const UnknownArrayHandle& handle, Functor&& f, Args&&... args);
|
||||
void CastAndCall(const UnknownArrayHandle& handle, Functor&& f, Args&&... args)
|
||||
{
|
||||
handle.CastAndCallForTypes<VTKM_DEFAULT_TYPE_LIST, VTKM_DEFAULT_STORAGE_LIST>(
|
||||
std::forward<Functor>(f), std::forward<Args>(args)...);
|
||||
}
|
||||
|
||||
/// A specialization of CastAndCall for basic CellSetStructured types,
|
||||
/// Since the type is already known no deduction is needed.
|
||||
@ -172,7 +177,16 @@ struct DynamicTransformTraits
|
||||
///
|
||||
using DynamicTag = vtkm::cont::internal::DynamicTransformTagStatic;
|
||||
};
|
||||
}
|
||||
|
||||
// Implemented here to avoid circular dependencies.
|
||||
template <>
|
||||
struct DynamicTransformTraits<vtkm::cont::UnknownArrayHandle>
|
||||
{
|
||||
using DynamicTag = vtkm::cont::internal::DynamicTransformTagCastAndCall;
|
||||
};
|
||||
|
||||
} // namespace internal
|
||||
|
||||
}
|
||||
} // namespace vtkm::cont
|
||||
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include <vtkm/Types.h>
|
||||
|
||||
#include <vtkm/cont/ArrayHandle.h>
|
||||
#include <vtkm/cont/CastAndCall.h>
|
||||
#include <vtkm/cont/UnknownArrayHandle.h>
|
||||
|
||||
namespace vtkm
|
||||
|
@ -10,6 +10,7 @@
|
||||
#ifndef vtk_m_cont_UncertainArrayHandle_h
|
||||
#define vtk_m_cont_UncertainArrayHandle_h
|
||||
|
||||
#include <vtkm/cont/CastAndCall.h>
|
||||
#include <vtkm/cont/UnknownArrayHandle.h>
|
||||
|
||||
namespace vtkm
|
||||
|
@ -18,8 +18,9 @@
|
||||
#include <vtkm/cont/ArrayHandleMultiplexer.h>
|
||||
#include <vtkm/cont/ArrayHandleRecombineVec.h>
|
||||
#include <vtkm/cont/ArrayHandleStride.h>
|
||||
#include <vtkm/cont/CastAndCall.h>
|
||||
#include <vtkm/cont/DefaultTypes.h>
|
||||
#include <vtkm/cont/StorageList.h>
|
||||
|
||||
#include <vtkm/TypeList.h>
|
||||
|
||||
#include <memory>
|
||||
#include <typeindex>
|
||||
@ -513,10 +514,10 @@ public:
|
||||
template <typename NewValueTypeList>
|
||||
VTKM_DEPRECATED(1.6, "Specify both value types and storage types.")
|
||||
VTKM_CONT
|
||||
vtkm::cont::UncertainArrayHandle<NewValueTypeList, VTKM_DEFAULT_STORAGE_LIST> ResetTypes(
|
||||
vtkm::cont::UncertainArrayHandle<NewValueTypeList, vtkm::cont::StorageListCommon> ResetTypes(
|
||||
NewValueTypeList = NewValueTypeList{}) const
|
||||
{
|
||||
return this->ResetTypes<NewValueTypeList, VTKM_DEFAULT_STORAGE_LIST>();
|
||||
return this->ResetTypes<NewValueTypeList, vtkm::cont::StorageListCommon>();
|
||||
}
|
||||
|
||||
/// \brief Returns the number of values in the array.
|
||||
@ -806,13 +807,13 @@ private:
|
||||
template <typename... Args>
|
||||
VTKM_CONT void CastAndCallImpl(std::false_type, Args&&... args) const
|
||||
{
|
||||
this->CastAndCallForTypes<VTKM_DEFAULT_TYPE_LIST, VTKM_DEFAULT_STORAGE_LIST>(
|
||||
this->CastAndCallForTypes<vtkm::TypeListCommon, vtkm::cont::StorageListCommon>(
|
||||
std::forward<Args>(args)...);
|
||||
}
|
||||
template <typename StorageList, typename... Args>
|
||||
VTKM_CONT void CastAndCallImpl(std::true_type, StorageList, Args&&... args) const
|
||||
{
|
||||
this->CastAndCallForTypes<VTKM_DEFAULT_TYPE_LIST, StorageList>(std::forward<Args>(args)...);
|
||||
this->CastAndCallForTypes<vtkm::TypeListCommon, StorageList>(std::forward<Args>(args)...);
|
||||
}
|
||||
};
|
||||
|
||||
@ -1014,13 +1015,6 @@ VTKM_CONT inline ArrayHandleType Cast(const vtkm::cont::UnknownArrayHandle& arra
|
||||
return array.template AsArrayHandle<ArrayHandleType>();
|
||||
}
|
||||
|
||||
template <typename Functor, typename... Args>
|
||||
void CastAndCall(const UnknownArrayHandle& handle, Functor&& f, Args&&... args)
|
||||
{
|
||||
handle.CastAndCallForTypes<VTKM_DEFAULT_TYPE_LIST, VTKM_DEFAULT_STORAGE_LIST>(
|
||||
std::forward<Functor>(f), std::forward<Args>(args)...);
|
||||
}
|
||||
|
||||
namespace detail
|
||||
{
|
||||
|
||||
@ -1074,17 +1068,6 @@ inline void UnknownArrayHandle::CastAndCallWithExtractedArray(Functor&& functor,
|
||||
}
|
||||
}
|
||||
|
||||
namespace internal
|
||||
{
|
||||
|
||||
template <>
|
||||
struct DynamicTransformTraits<vtkm::cont::UnknownArrayHandle>
|
||||
{
|
||||
using DynamicTag = vtkm::cont::internal::DynamicTransformTagCastAndCall;
|
||||
};
|
||||
|
||||
} // namespace internal
|
||||
|
||||
}
|
||||
} // namespace vtkm::cont
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user