summaryrefslogtreecommitdiffhomepage
path: root/src/kernel/NeKit/InitializerList.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-12-10 10:05:53 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-12-10 10:08:00 +0100
commit031789eeb226b2b559f0edbaf28ed5bebc6ddff4 (patch)
treef068128f603c75f97ba766290b6c8c2be05afe8f /src/kernel/NeKit/InitializerList.h
parent64c23b15059649aeee6d08c7940d0ff1b56512b5 (diff)
chore: new `InitializerList` API.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'src/kernel/NeKit/InitializerList.h')
-rw-r--r--src/kernel/NeKit/InitializerList.h18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/kernel/NeKit/InitializerList.h b/src/kernel/NeKit/InitializerList.h
index 158b88ed..dc33d8eb 100644
--- a/src/kernel/NeKit/InitializerList.h
+++ b/src/kernel/NeKit/InitializerList.h
@@ -7,9 +7,10 @@
#pragma once
#include <NeKit/Config.h>
+#include <NeKit/ErrorOr.h>
namespace Kernel {
-template <typename T, SizeT N>
+template <class T, SizeT N>
class InitializerList final {
public:
explicit InitializerList(const T* list) {
@@ -22,21 +23,20 @@ class InitializerList final {
~InitializerList() = default;
- InitializerList& operator=(const InitializerList&) = default;
- InitializerList(const InitializerList&) = default;
+ InitializerList& operator=(const InitializerList&) = delete;
+ InitializerList(const InitializerList&) = delete;
T* begin() { return fList; }
- T* operator->() { return fList; }
- T* operator*() { return fList; }
T* end() { return fList + N; }
constexpr SizeT size() const { return N; }
+
+ T* operator->() { return fList; }
+ T* operator*() { return fList; }
private:
T fList[N];
};
-template <typename ValueType, SizeT N>
-inline InitializerList<ValueType, N> make_list(ValueType& val) {
- return InitializerList<ValueType, N>{val};
-}
+template <class T, SizeT N>
+using ErrorOrList = ErrorOr<InitializerList<T, N>>;
} // namespace Kernel