NeKernel dev
Loading...
Searching...
No Matches
Array.h
Go to the documentation of this file.
1/* -------------------------------------------
2
3 Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
4
5------------------------------------------- */
6
7#pragma once
8
10#include <NeKit/Defines.h>
11#include <NeKit/ErrorOr.h>
12
13namespace Kernel {
14template <typename T, SizeT N>
15class Array final {
16 public:
17 explicit Array() = default;
18 ~Array() = default;
19
20 Array& operator=(const Array&) = default;
21 Array(const Array&) = default;
22
23 T& operator[](SizeT at) { return fArray[at]; }
24
25 Boolean Empty() { return this->Count() > 0; }
26
27 SizeT Capacity() { return N; }
28
30 const static SizeT kArrCnt = N;
31 return kArrCnt; // avoid constexpr error.
32 }
33
34 const T* CData() { return fArray; }
35
36 operator bool() { return !Empty(); }
37
38 private:
39 T fArray[N];
40};
41
42template <typename ValueType>
43auto make_list(ValueType val) {
44 return Array<ValueType, ARRAY_SIZE(val)>{val};
45}
46} // namespace Kernel
#define ARRAY_SIZE(a)
Definition Array.h:15
Array(const Array &)=default
T & operator[](SizeT at)
Definition Array.h:23
const T * CData()
Definition Array.h:34
Array & operator=(const Array &)=default
Property fArray[N]
Definition Array.h:39
SizeT Count()
Definition Array.h:29
SizeT Capacity()
Definition Array.h:27
Array()=default
Boolean Empty()
Definition Array.h:25
~Array()=default
USER_PROCESS inline definitions.
Definition Qr.h:793
auto make_list(ValueType val)
Definition Array.h:43
__SIZE_TYPE__ SizeT
Definition Defines.h:58
bool Boolean
Definition Defines.h:49