mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-09-16 17:22:55 +00:00
Fix CUDA parse error
The nvcc compiler was having problem resolving a template partial specialization that contained a template param with its own number list and another param that depended on that template.
This commit is contained in:
parent
6f0edbec24
commit
625a6b4a93
@ -518,11 +518,11 @@ struct DecoratorStorageTraits
|
||||
|
||||
|
||||
// Portal construction methods. These actually create portals.
|
||||
template <template <typename, std::size_t...> class List, std::size_t... Indices>
|
||||
template <std::size_t... Indices>
|
||||
VTKM_CONT static PortalControlType MakePortalControl(const DecoratorImplT& impl,
|
||||
ArrayTupleType& arrays,
|
||||
vtkm::Id numValues,
|
||||
List<std::size_t, Indices...>)
|
||||
vtkmstd::index_sequence<Indices...>)
|
||||
{
|
||||
return CreatePortalDecorator<PortalControlType>(
|
||||
numValues,
|
||||
@ -538,11 +538,12 @@ struct DecoratorStorageTraits
|
||||
WritePortal(vtkm::Get<Indices>(arrays))...);
|
||||
}
|
||||
|
||||
template <template <typename, std::size_t...> class List, std::size_t... Indices>
|
||||
VTKM_CONT static PortalConstControlType MakePortalConstControl(const DecoratorImplT& impl,
|
||||
template <std::size_t... Indices>
|
||||
VTKM_CONT static PortalConstControlType MakePortalConstControl(
|
||||
const DecoratorImplT& impl,
|
||||
const ArrayTupleType& arrays,
|
||||
vtkm::Id numValues,
|
||||
List<std::size_t, Indices...>)
|
||||
vtkmstd::index_sequence<Indices...>)
|
||||
{
|
||||
return CreatePortalDecorator<PortalConstControlType>(
|
||||
numValues,
|
||||
@ -552,11 +553,12 @@ struct DecoratorStorageTraits
|
||||
ReadPortal(vtkm::Get<Indices>(arrays))...);
|
||||
}
|
||||
|
||||
template <template <typename, std::size_t...> class List, std::size_t... Indices, typename Device>
|
||||
VTKM_CONT static PortalConstExecutionType<Device> MakePortalInput(const DecoratorImplT& impl,
|
||||
template <std::size_t... Indices, typename Device>
|
||||
VTKM_CONT static PortalConstExecutionType<Device> MakePortalInput(
|
||||
const DecoratorImplT& impl,
|
||||
const ArrayTupleType& arrays,
|
||||
vtkm::Id numValues,
|
||||
List<std::size_t, Indices...>,
|
||||
vtkmstd::index_sequence<Indices...>,
|
||||
Device dev,
|
||||
vtkm::cont::Token& token)
|
||||
{
|
||||
@ -568,11 +570,12 @@ struct DecoratorStorageTraits
|
||||
GetPortalInput(vtkm::Get<Indices>(arrays), dev, token)...);
|
||||
}
|
||||
|
||||
template <template <typename, std::size_t...> class List, std::size_t... Indices, typename Device>
|
||||
VTKM_CONT static PortalExecutionType<Device> MakePortalInPlace(const DecoratorImplT& impl,
|
||||
template <std::size_t... Indices, typename Device>
|
||||
VTKM_CONT static PortalExecutionType<Device> MakePortalInPlace(
|
||||
const DecoratorImplT& impl,
|
||||
ArrayTupleType& arrays,
|
||||
vtkm::Id numValues,
|
||||
List<std::size_t, Indices...>,
|
||||
vtkmstd::index_sequence<Indices...>,
|
||||
Device dev,
|
||||
vtkm::cont::Token& token)
|
||||
{
|
||||
@ -584,11 +587,11 @@ struct DecoratorStorageTraits
|
||||
GetPortalInPlace(vtkm::Get<Indices>(arrays), dev, token)...);
|
||||
}
|
||||
|
||||
template <template <typename, std::size_t...> class List, std::size_t... Indices, typename Device>
|
||||
template <std::size_t... Indices, typename Device>
|
||||
VTKM_CONT static PortalExecutionType<Device> MakePortalOutput(const DecoratorImplT& impl,
|
||||
ArrayTupleType& arrays,
|
||||
vtkm::Id numValues,
|
||||
List<std::size_t, Indices...>,
|
||||
vtkmstd::index_sequence<Indices...>,
|
||||
Device dev,
|
||||
vtkm::cont::Token& token)
|
||||
{
|
||||
@ -600,20 +603,20 @@ struct DecoratorStorageTraits
|
||||
GetPortalOutput(vtkm::Get<Indices>(arrays), dev, token)...);
|
||||
}
|
||||
|
||||
template <template <typename, std::size_t...> class List, std::size_t... Indices>
|
||||
template <std::size_t... Indices>
|
||||
VTKM_CONT static void AllocateSourceArrays(const DecoratorImplT& impl,
|
||||
ArrayTupleType& arrays,
|
||||
vtkm::Id numValues,
|
||||
List<std::size_t, Indices...>)
|
||||
vtkmstd::index_sequence<Indices...>)
|
||||
{
|
||||
CallAllocate(IsAllocatable{}, impl, numValues, vtkm::Get<Indices>(arrays)...);
|
||||
}
|
||||
|
||||
template <template <typename, std::size_t...> class List, std::size_t... Indices>
|
||||
template <std::size_t... Indices>
|
||||
VTKM_CONT static void ShrinkSourceArrays(const DecoratorImplT& impl,
|
||||
ArrayTupleType& arrays,
|
||||
vtkm::Id numValues,
|
||||
List<std::size_t, Indices...>)
|
||||
vtkmstd::index_sequence<Indices...>)
|
||||
{
|
||||
CallShrink(IsShrinkable{}, impl, numValues, vtkm::Get<Indices>(arrays)...);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user