From 9c8a7c443ae5d2e9b60e6b2a1b8654c016e772d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Del=20Pino?= <stephane.delpino44@gmail.com> Date: Thu, 1 Apr 2021 12:49:59 +0200 Subject: [PATCH] Fix constructors - remove a useless static_assert in the standard constructor - forbid default constructor: SubArray require an Array to exist --- src/utils/SubArray.hpp | 4 +--- tests/test_SubArray.cpp | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/utils/SubArray.hpp b/src/utils/SubArray.hpp index 2ab94694f..5b79bf44c 100644 --- a/src/utils/SubArray.hpp +++ b/src/utils/SubArray.hpp @@ -75,12 +75,10 @@ class [[nodiscard]] SubArray : m_array{array}, m_sub_values{&array[0] + begin}, m_size{size} { Assert(begin + size <= array.size(), "SubView is not contained in the source Array"); - static_assert(not std::is_const<DataType>(), "Cannot allocate SubArray of const data: only view is " - "supported"); } PUGS_INLINE - SubArray() = default; + SubArray() = delete; PUGS_INLINE SubArray(const SubArray&) = default; diff --git a/tests/test_SubArray.cpp b/tests/test_SubArray.cpp index 98e303dd1..647dc259e 100644 --- a/tests/test_SubArray.cpp +++ b/tests/test_SubArray.cpp @@ -54,7 +54,7 @@ TEST_CASE("SubArray", "[utils]") SECTION("sub array copy") { a.fill(0); - SubArray<int> sub_a; + SubArray<int> sub_a{a, 2, 1}; sub_a = SubArray{a, 5, 5}; for (size_t i = 0; i < sub_a.size(); ++i) { sub_a[i] = i + 1; @@ -95,7 +95,7 @@ TEST_CASE("SubArray", "[utils]") SECTION("errors") { a.fill(0); - SubArray<int> sub_a; + SubArray<int> sub_a{a, 0, 0}; sub_a = SubArray{a, 5, 5}; for (size_t i = 0; i < sub_a.size(); ++i) { sub_a[i] = i + 1; -- GitLab