/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* array.h :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: maldavid +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/20 09:31:30 by maldavid #+# #+# */ /* Updated: 2024/01/20 09:40:29 by maldavid ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef __UNSTD_ARRAY__ #define __UNSTD_ARRAY__ #include #include namespace unstd { template class TArray { public: TArray() {} TArray(const TArray& rhs) { for(std::size_t i = 0; i < N; i++) _data[i] = rhs._data[i]; } inline TArray& operator=(const TArray& rhs) { for(std::size_t i = 0; i < N; i++) _data[i] = rhs._data[i]; return *this; } inline bool empty() const { return N == 0; } inline std::size_t size() const { return N; } inline std::size_t max_size() const { return N; } inline T* data() { return _data; } inline T& at(std::size_t pos) { assert(pos < N && "TArray assertion failed : index out of range"); return _data[pos]; } inline T& operator[](std::size_t pos) { return _data[pos]; } ~TArray() {} private: T _data[N]; }; } #endif