From: Daniel Arndt Date: Thu, 3 Apr 2025 19:02:18 +0000 (-0400) Subject: Mark ArraView::data access only has device-callable for MemorySpace::Default X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e7e962a1589e498f7061aefc07820c2076b6cae1;p=dealii.git Mark ArraView::data access only has device-callable for MemorySpace::Default --- diff --git a/include/deal.II/base/array_view.h b/include/deal.II/base/array_view.h index 010e6b7a2b..0e187c3449 100644 --- a/include/deal.II/base/array_view.h +++ b/include/deal.II/base/array_view.h @@ -431,7 +431,15 @@ public: * Return a pointer to the underlying array serving as element storage. * In case the container is empty a nullptr is returned. */ - DEAL_II_HOST_DEVICE value_type * + template + DEAL_II_HOST_DEVICE + std::enable_if_t, + value_type *> + data() const noexcept; + + template + std::enable_if_t, + value_type *> data() const noexcept; /** @@ -661,9 +669,26 @@ ArrayView::operator!=( template -inline DEAL_II_HOST_DEVICE - typename ArrayView::value_type * - ArrayView::data() const noexcept +template +inline DEAL_II_HOST_DEVICE std::enable_if_t< + std::is_same_v, + typename ArrayView::value_type *> +ArrayView::data() const noexcept +{ + if (n_elements == 0) + return nullptr; + else + return starting_element; +} + + + +template +template +inline std::enable_if_t< + std::is_same_v, + typename ArrayView::value_type *> +ArrayView::data() const noexcept { if (n_elements == 0) return nullptr;