From e075ed0b98766f7fe9e90327c6eec52eb9100253 Mon Sep 17 00:00:00 2001 From: Nathan Ellingwood Date: Wed, 10 Nov 2021 15:01:25 -0700 Subject: [PATCH] Kokkos_CopyViews: update local_deep_copy_contiguous signature Changes signature of routine so the call is valid for case when the trait specialize == void, allowing for customized implementations when specialize != void See trilinos/Trilinos#9917 for request and use case --- core/src/Kokkos_CopyViews.hpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/src/Kokkos_CopyViews.hpp b/core/src/Kokkos_CopyViews.hpp index e48e61163eb..85313d9f330 100644 --- a/core/src/Kokkos_CopyViews.hpp +++ b/core/src/Kokkos_CopyViews.hpp @@ -2117,7 +2117,11 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( template void KOKKOS_INLINE_FUNCTION local_deep_copy_contiguous( const TeamType& team, const View& dst, - typename ViewTraits::const_value_type& value) { + typename ViewTraits::const_value_type& value, + typename std::enable_if< + std::is_same< typename ViewTraits::specialize, + void>::value + >::type* = nullptr) { Kokkos::parallel_for(Kokkos::TeamThreadRange(team, dst.span()), [&](const int& i) { dst.data()[i] = value; }); } @@ -2125,7 +2129,11 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy_contiguous( template void KOKKOS_INLINE_FUNCTION local_deep_copy_contiguous( const View& dst, - typename ViewTraits::const_value_type& value) { + typename ViewTraits::const_value_type& value, + typename std::enable_if< + std::is_same< typename ViewTraits::specialize, + void>::value + >::type* = nullptr) { for (size_t i = 0; i < dst.span(); ++i) { dst.data()[i] = value; }