From f511ab3c1e840e1568dec67c4988f42e67d527b7 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Tue, 11 Feb 2025 08:51:02 +0100 Subject: ADD: LibCF --- dev/Usr/LibCF/Array.h | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 dev/Usr/LibCF/Array.h (limited to 'dev/Usr/LibCF/Array.h') diff --git a/dev/Usr/LibCF/Array.h b/dev/Usr/LibCF/Array.h new file mode 100644 index 00000000..8533b649 --- /dev/null +++ b/dev/Usr/LibCF/Array.h @@ -0,0 +1,63 @@ +/* ------------------------------------------- + + Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#pragma once + +#include + +namespace LibCF +{ + template + class CFArray final + { + public: + explicit CFArray() = default; + ~CFArray() = default; + + CFArray& operator=(const CFArray&) = default; + CFArray(const CFArray&) = default; + + T& operator[](const SizeT& at) + { + MUST_PASS(at < this->Count()); + return fArray[at]; + } + + Bool Empty() + { + return this->Count() > 0; + } + + const SizeT Capacity() + { + return N; + } + + const SizeT Count() + { + return N; + } + + const T* CData() + { + return fArray; + } + + operator bool() + { + return !Empty(); + } + + private: + T fArray[N]; + }; + + template + auto make_list(ValueType val) + { + return CFArray{val}; + } +} // namespace Kernel -- cgit v1.2.3