diff --git a/vtkm/cont/arg/TransportTagArrayIn.h b/vtkm/cont/arg/TransportTagArrayIn.h index 4fe2c3c4b..f8087c3c4 100644 --- a/vtkm/cont/arg/TransportTagArrayIn.h +++ b/vtkm/cont/arg/TransportTagArrayIn.h @@ -47,7 +47,7 @@ struct Transport { VTKM_IS_ARRAY_HANDLE(ContObjectType); - using ExecObjectType = typename ContObjectType::template ExecutionTypes::PortalConst; + using ExecObjectType = decltype(std::declval().PrepareForInput(Device())); template VTKM_CONT ExecObjectType operator()(const ContObjectType& object, diff --git a/vtkm/cont/arg/TransportTagArrayInOut.h b/vtkm/cont/arg/TransportTagArrayInOut.h index 42f05cd0c..3a89bb4f4 100644 --- a/vtkm/cont/arg/TransportTagArrayInOut.h +++ b/vtkm/cont/arg/TransportTagArrayInOut.h @@ -50,7 +50,7 @@ struct Transport::Portal; + using ExecObjectType = decltype(std::declval().PrepareForInPlace(Device())); template VTKM_CONT ExecObjectType operator()(ContObjectType object, diff --git a/vtkm/cont/arg/TransportTagArrayOut.h b/vtkm/cont/arg/TransportTagArrayOut.h index 87e608784..d4f794680 100644 --- a/vtkm/cont/arg/TransportTagArrayOut.h +++ b/vtkm/cont/arg/TransportTagArrayOut.h @@ -49,7 +49,8 @@ struct Transport // is not an array handle as an argument that is expected to be one. VTKM_IS_ARRAY_HANDLE(ContObjectType); - using ExecObjectType = typename ContObjectType::template ExecutionTypes::Portal; + using ExecObjectType = + decltype(std::declval().PrepareForOutput(vtkm::Id{}, Device())); template VTKM_CONT ExecObjectType operator()(ContObjectType object, diff --git a/vtkm/cont/arg/TransportTagCellSetIn.h b/vtkm/cont/arg/TransportTagCellSetIn.h index 5d4a48d3e..efccb348d 100644 --- a/vtkm/cont/arg/TransportTagCellSetIn.h +++ b/vtkm/cont/arg/TransportTagCellSetIn.h @@ -50,10 +50,8 @@ struct Transport::ExecObjectType; + using ExecObjectType = decltype( + std::declval().PrepareForInput(Device(), FromTopology(), ToTopology())); template VTKM_CONT ExecObjectType diff --git a/vtkm/cont/arg/TransportTagTopologyFieldIn.h b/vtkm/cont/arg/TransportTagTopologyFieldIn.h index 6b85d3a23..0b382dae6 100644 --- a/vtkm/cont/arg/TransportTagTopologyFieldIn.h +++ b/vtkm/cont/arg/TransportTagTopologyFieldIn.h @@ -87,7 +87,8 @@ struct Transport::PortalConst; + + using ExecObjectType = decltype(std::declval().PrepareForInput(Device())); VTKM_CONT ExecObjectType operator()(const ContObjectType& object,