From 89f89a7dc136cb63cdac3faf41fa73cda295a172 Mon Sep 17 00:00:00 2001 From: "romin.tomasetti" Date: Fri, 26 Jan 2024 16:23:45 +0000 Subject: [PATCH] unorderedmap: adding missing constexpr --- containers/src/Kokkos_UnorderedMap.hpp | 9 +++++---- containers/src/impl/Kokkos_UnorderedMap_impl.hpp | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/containers/src/Kokkos_UnorderedMap.hpp b/containers/src/Kokkos_UnorderedMap.hpp index 78a6a238ece..ca27c1ed83d 100644 --- a/containers/src/Kokkos_UnorderedMap.hpp +++ b/containers/src/Kokkos_UnorderedMap.hpp @@ -533,10 +533,11 @@ class UnorderedMap { "Insert Operations are not supported on sets."); } + static_assert(is_insertable_map, "Insert requires an insertable map."); + insert_result result; - if (!is_insertable_map || capacity() == 0u || - m_scalars((int)erasable_idx)) { + if (capacity() == 0u || m_scalars((int)erasable_idx)) { return result; } @@ -652,7 +653,7 @@ class UnorderedMap { m_keys[new_index] = k; #endif - if (!is_set) { + if constexpr (!is_set) { KOKKOS_NONTEMPORAL_PREFETCH_STORE(&m_values[new_index]); #ifdef KOKKOS_ENABLE_SYCL Kokkos::atomic_store(&m_values[new_index], v); @@ -844,7 +845,7 @@ class UnorderedMap { sizeof(size_type) * src.m_next_index.extent(0)); raw_deep_copy(tmp.m_keys.data(), src.m_keys.data(), sizeof(key_type) * src.m_keys.extent(0)); - if (!is_set) { + if constexpr (!is_set) { raw_deep_copy(tmp.m_values.data(), src.m_values.data(), sizeof(impl_value_type) * src.m_values.extent(0)); } diff --git a/containers/src/impl/Kokkos_UnorderedMap_impl.hpp b/containers/src/impl/Kokkos_UnorderedMap_impl.hpp index a979ee40d8c..e224f90c10e 100644 --- a/containers/src/impl/Kokkos_UnorderedMap_impl.hpp +++ b/containers/src/impl/Kokkos_UnorderedMap_impl.hpp @@ -98,7 +98,7 @@ struct UnorderedMapErase { next = m_map.m_next_index[curr]; m_map.m_next_index[curr] = invalid_index; m_map.m_keys[curr] = key_type(); - if (m_map.is_set) m_map.m_values[curr] = value_type(); + if constexpr (map_type::is_set) m_map.m_values[curr] = value_type(); curr = next; m_map.m_hash_lists(i) = next; } @@ -117,7 +117,7 @@ struct UnorderedMapErase { m_map.m_next_index[prev] = next; m_map.m_next_index[curr] = invalid_index; m_map.m_keys[curr] = key_type(); - if (map_type::is_set) m_map.m_values[curr] = value_type(); + if constexpr (map_type::is_set) m_map.m_values[curr] = value_type(); } curr = next; }