3#ifndef pRC_CORE_CONTAINER_ARRAY_HEAP_H
4#define pRC_CORE_CONTAINER_ARRAY_HEAP_H
15 template<
class T, Size N>
25 static constexpr auto size()
47 return Index(subscripts);
53 template<class R,
Size S>
78 other.mData =
nullptr;
95 template<pRC::Allocation B, IsConvertible<T> R>
102 template<IsConvertible<T> R>
108 template<IsConvertible<T>... Rs>
109 requires(
sizeof...(Rs) == N)
115 template<pRC::Allocation B, IsConvertible<T> R>
119 [
this, &rhs](
auto const i)
121 operator[](
i) = rhs[
i];
126 template<IsConvertible<T> R>
130 [
this, &rhs](
auto const i)
132 operator[](
i) = rhs[
i];
137 constexpr decltype(
auto)
operator()(
Index const subscript) &&
139 return move(*
this)[subscript];
142 constexpr decltype(
auto)
operator()(
Index const subscript)
const &&
144 return move(*
this)[subscript];
147 constexpr decltype(
auto)
operator()(
Index const subscript) &
149 return operator[](subscript);
152 constexpr decltype(
auto)
operator()(
Index const subscript)
const &
154 return operator[](subscript);
159 return move(*
this)[
Index(subscripts)];
162 constexpr decltype(
auto)
operator()(
165 return move(*
this)[
Index(subscripts)];
170 return operator[](
Index(subscripts));
173 constexpr decltype(
auto)
operator()(
176 return operator[](
Index(subscripts));
179 constexpr decltype(
auto)
operator[](
Index const index) &&
182 return move(*mData)[index];
185 constexpr decltype(
auto)
operator[](
Index const index)
const &&
188 return move(*mData)[index];
191 constexpr decltype(
auto)
operator[](
Index const index) &
194 return (*mData)[index];
197 constexpr decltype(
auto)
operator[](
Index const index)
const &
200 return (*mData)[index];
203 constexpr auto data() && =
delete;
204 constexpr auto data() const && = delete;
206 constexpr auto data() &
208 return mData->data();
213 return mData->data();
217 template<
Index... Is,
class R>
219 CArray<R, N>
const &other)
224 template<
Index... Is,
class... Rs>
225 constexpr CommonArray(Sequence<Index, Is...>
const, Rs
const &...values)
228 ((operator[](Is) = values), ...);
253 constexpr auto validate()
const
260 "Accessing invalidated dynamically allocated memory.");
constexpr auto data() const &&=delete
static constexpr auto indexToSubscripts(Index const index)
Definition array_heap.hpp:35
CommonArray(CommonArray const &other)
Definition array_heap.hpp:69
static constexpr auto size()
Definition array_heap.hpp:25
CommonArray(CommonArray &&other)
Definition array_heap.hpp:75
static constexpr auto subscriptsToIndex(Index const subscripts)
Definition array_heap.hpp:40
constexpr auto & operator=(CArray< R, N > const &rhs) &
Definition array_heap.hpp:127
constexpr auto data() const &
Definition array_heap.hpp:211
auto & operator=(CommonArray const &rhs) &
Definition array_heap.hpp:81
constexpr CommonArray(CommonArray< B, R, N > const &other)
Definition array_heap.hpp:96
static constexpr auto subscriptsToIndex(Subscripts< N > const &subscripts)
Definition array_heap.hpp:45
auto & operator=(CommonArray &&rhs) &
Definition array_heap.hpp:86
constexpr auto data() &&=delete
constexpr auto & operator=(CommonArray< B, R, N > const &rhs) &
Definition array_heap.hpp:116
CommonArray()
Definition array_heap.hpp:64
static constexpr auto size(Index const dimension)
Definition array_heap.hpp:30
constexpr CommonArray(Rs const &...values)
Definition array_heap.hpp:110
constexpr CommonArray(CArray< R, N > const &other)
Definition array_heap.hpp:103
Definition declarations.hpp:12
Definition sequence.hpp:29
static constexpr Size Dimension
Definition sequence.hpp:47
static constexpr auto size()
Definition sequence.hpp:69
Definition subscripts.hpp:21
TN::Subscripts S
Definition externs_nonTT.hpp:9
pRC::Float<> T
Definition externs_nonTT.hpp:1
int i
Definition gmock-matchers-comparisons_test.cc:603
static void error(Xs &&...args)
Definition log.hpp:14
Definition cholesky.hpp:10
Size Index
Definition basics.hpp:32
std::size_t Size
Definition basics.hpp:31
static constexpr auto makeSeriesFor()
Definition sequence.hpp:399
static constexpr auto makeSeries()
Definition sequence.hpp:390
CommonArray(T const (&)[N]) -> CommonArray< Allocation::Stack, T, N >
CommonArray< Allocation::Stack, T, Ns... > StackArray
Definition declarations.hpp:15
constexpr auto cDebugLevel
Definition config.hpp:48
static constexpr auto range(F &&f, Xs &&...args)
Definition range.hpp:18
Allocation
Definition allocation.hpp:18
#define BEGIN_IGNORE_DIAGNOSTIC_CLANG(warning)
Definition pragma.hpp:45
#define END_IGNORE_DIAGNOSTIC_CLANG
Definition pragma.hpp:46
#define BEGIN_IGNORE_DIAGNOSTIC_GCC(warning)
Definition pragma.hpp:42
#define END_IGNORE_DIAGNOSTIC_GCC
Definition pragma.hpp:43