10 #ifndef vtk_m_cont_CastAndCall_h 
   11 #define vtk_m_cont_CastAndCall_h 
   15 #include <vtkm/cont/DefaultTypes.h> 
   25 class CoordinateSystem;
 
   28 template <
typename T, 
typename S>
 
   31 template <vtkm::IdComponent>
 
   35 template <
typename T, 
typename S, 
typename U>
 
   37 template <
typename T, 
typename S>
 
   46 template <
typename DynamicObject, 
typename Functor, 
typename... Args>
 
   47 void CastAndCall(
const DynamicObject& dynamicObject, Functor&& f, Args&&... args)
 
   49   dynamicObject.CastAndCall(std::forward<Functor>(f), std::forward<Args>(args)...);
 
   55 template <
typename Functor, 
typename... Args>
 
   56 void CastAndCall(
const CoordinateSystem& coords, Functor&& f, Args&&... args);
 
   61 template <
typename Functor, 
typename... Args>
 
   66 template <
typename Functor, 
typename... Args>
 
   72 template <
typename T, 
typename U, 
typename Functor, 
typename... Args>
 
   75   f(handle, std::forward<Args>(args)...);
 
   82 template <
typename Functor, 
typename... Args>
 
   86     std::forward<Functor>(f), std::forward<Args>(args)...);
 
   95   f(cellset, std::forward<Args>(args)...);
 
  101 template <
typename ConnectivityStorageTag, 
typename Functor, 
typename... Args>
 
  106   f(cellset, std::forward<Args>(args)...);
 
  112 template <
typename T, 
typename S, 
typename U, 
typename Functor, 
typename... Args>
 
  115   f(cellset, std::forward<Args>(args)...);
 
  121 template <
typename PermutationType, 
typename CellSetType, 
typename Functor, 
typename... Args>
 
  126   f(cellset, std::forward<Args>(args)...);
 
  132 template <
typename Functor, 
typename... Args>
 
  135   f(cellset, std::forward<Args>(args)...);
 
  139 template <
typename... Args>
 
  146 template <
typename... Args>
 
  157 struct DynamicTransformTagCastAndCall
 
  164 struct DynamicTransformTagStatic
 
  176 template <
typename T>
 
  177 struct DynamicTransformTraits
 
  185   using DynamicTag = vtkm::cont::internal::DynamicTransformTagStatic;
 
  190 struct DynamicTransformTraits<
vtkm::cont::UnknownArrayHandle>
 
  192   using DynamicTag = vtkm::cont::internal::DynamicTransformTagCastAndCall;
 
  200 #endif //vtk_m_cont_CastAndCall_h