diff --git a/include/const_vector.hpp b/include/const_vector.hpp index 52d7c42..ce4b459 100644 --- a/include/const_vector.hpp +++ b/include/const_vector.hpp @@ -66,6 +66,27 @@ namespace cc { constexpr reference at(size_type pos); constexpr const_reference at(size_type pos) const; + [[nodiscard]] constexpr reference front() noexcept{ return _arr[0]; } + [[nodiscard]] constexpr const_reference front() const noexcept { return _arr[0]; } + + [[nodiscard]] constexpr reference back() noexcept { return _arr[_size]; } + [[nodiscard]] constexpr const_reference back() const noexcept { return _arr[_size]; } + + [[nodiscard]] constexpr value_type * data() noexcept { return _arr; } + [[nodiscard]] constexpr const value_type * data() const noexcept { return _arr; } + + [[nodiscard]] constexpr iterator begin() noexcept { return _arr; }; + [[nodiscard]] constexpr const_iterator cbegin() const noexcept { return _arr; }; + + [[nodiscard]] constexpr iterator end() noexcept { return _arr + _size; }; + [[nodiscard]] constexpr const_iterator cend() const noexcept { return _arr + _size; }; + + [[nodiscard]] constexpr reverse_iterator rbegin() noexcept { return std::reverse_iterator(_arr + _size); }; + [[nodiscard]] constexpr const_reverse_iterator crbegin() const noexcept { return std::reverse_iterator(_arr + _size); }; + + [[nodiscard]] constexpr reverse_iterator rend() noexcept { return std::reverse_iterator(_arr); }; + [[nodiscard]] constexpr const_reverse_iterator crend() const noexcept { return std::reverse_iterator(_arr); }; + [[nodiscard]] constexpr size_type size() const noexcept { return _size; } constexpr T& operator[](size_type pos) { return _arr[pos]; }