3#ifndef pRC_CORE_CONTAINER_ARRAY_HEAP_H
4#define pRC_CORE_CONTAINER_ARRAY_HEAP_H
16 template<
class T, Size N>
25 static constexpr auto size()
78 other.mData =
nullptr;
95 template<pRC::Allocation B,
class R, If<IsConvertible<R, T>> = 0>
102 template<
class R, If<IsConvertible<R, T>> = 0>
115 template<pRC::Allocation B,
class R, If<IsConvertible<R, T>> = 0>
119 [
this, &
rhs](
auto const i)
121 operator[](
i) =
rhs[
i];
126 template<
class R, If<IsConvertible<R, T>> = 0>
130 [
this, &
rhs](
auto const i)
132 operator[](
i) =
rhs[
i];
162 constexpr decltype(
auto)
operator()(
173 constexpr decltype(
auto)
operator()(
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;
208 return mData->data();
213 return mData->data();
226 If<
IsSatisfied<((
sizeof...(Rs) == N) && (
sizeof...(Is) == N))>> = 0>
255 constexpr auto validate()
const
262 "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
constexpr CommonArray(CArray< R, N > const &other)
Definition array_heap.hpp:103
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
typename Sizes::Dimension Dimension
Definition array_heap.hpp:23
constexpr CommonArray(Rs const &...values)
Definition array_heap.hpp:110
T Type
Definition array_heap.hpp:21
static constexpr auto subscriptsToIndex(Subscripts< N > const &subscripts)
Definition array_heap.hpp:45
auto & operator=(CommonArray &&rhs) &
Definition array_heap.hpp:86
constexpr CommonArray(CommonArray< B, R, N > const &other)
Definition array_heap.hpp:96
constexpr auto data() &&=delete
CommonArray()
Definition array_heap.hpp:64
static constexpr auto size(Index const dimension)
Definition array_heap.hpp:30
constexpr auto & operator=(CommonArray< B, R, N > const &rhs) &
Definition array_heap.hpp:116
Constant< pRC::Allocation, pRC::Allocation::Heap > Allocation
Definition array_heap.hpp:20
Definition type_traits.hpp:49
Definition sequence.hpp:56
static constexpr auto size()
Definition sequence.hpp:88
Constant< Size, sizeof...(Ns)> Dimension
Definition sequence.hpp:74
Definition sequence.hpp:34
Definition subscripts.hpp:20
static void error(Xs &&...args)
Definition log.hpp:14
Definition cholesky.hpp:18
static constexpr auto makeSeriesFor()
Definition sequence.hpp:367
std::enable_if_t< B{}, int > If
Definition type_traits.hpp:68
std::size_t Size
Definition type_traits.hpp:20
std::integral_constant< T, V > Constant
Definition type_traits.hpp:34
static constexpr auto makeSeries()
Definition sequence.hpp:361
Constant< Bool, B > IsSatisfied
Definition type_traits.hpp:71
static constexpr Conditional< IsSatisfied< C >, RemoveConstReference< X >, X > copy(X &&a)
Definition copy.hpp:13
constexpr auto cDebugLevel
Definition config.hpp:46
Size Index
Definition type_traits.hpp:21
#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