From 4e0cd1444d3e34a239d1719de2c8deddd84d3405 Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Fri, 4 Feb 2022 22:48:23 -0600 Subject: [PATCH] [ox/std] Add missing iterator functions to String and Vector --- deps/ox/src/ox/std/string.hpp | 20 ++++++++++++++++++++ deps/ox/src/ox/std/vector.hpp | 16 ++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/deps/ox/src/ox/std/string.hpp b/deps/ox/src/ox/std/string.hpp index c856b317..03a8708b 100644 --- a/deps/ox/src/ox/std/string.hpp +++ b/deps/ox/src/ox/std/string.hpp @@ -50,6 +50,16 @@ class BasicString { return m_buff.end(); } + [[nodiscard]] + constexpr auto begin() const noexcept { + return m_buff.begin(); + } + + [[nodiscard]] + constexpr auto end() const noexcept { + return m_buff.end(); + } + [[nodiscard]] constexpr auto cbegin() const noexcept { return m_buff.begin(); @@ -70,6 +80,16 @@ class BasicString { return m_buff.rend(); } + [[nodiscard]] + constexpr auto rbegin() const noexcept { + return m_buff.rbegin(); + } + + [[nodiscard]] + constexpr auto rend() const noexcept { + return m_buff.rend(); + } + [[nodiscard]] constexpr auto crbegin() const noexcept { return m_buff.rbegin(); diff --git a/deps/ox/src/ox/std/vector.hpp b/deps/ox/src/ox/std/vector.hpp index dcbaa344..db7396c1 100644 --- a/deps/ox/src/ox/std/vector.hpp +++ b/deps/ox/src/ox/std/vector.hpp @@ -249,6 +249,14 @@ class Vector: detail::SmallVector { return iterator(m_items, m_size, m_size); } + constexpr iterator cbegin() const noexcept { + return iterator(m_items, 0, m_size); + } + + constexpr iterator cend() const noexcept { + return iterator(m_items, m_size, m_size); + } + constexpr iterator rbegin() noexcept { return iterator(m_items, m_size - 1, m_size); } @@ -257,6 +265,14 @@ class Vector: detail::SmallVector { return iterator(m_items, MaxValue, m_size); } + constexpr iterator crbegin() const noexcept { + return iterator(m_items, m_size - 1, m_size); + } + + constexpr iterator crend() const noexcept { + return iterator(m_items, MaxValue, m_size); + } + constexpr iterator rbegin() const noexcept { return iterator(m_items, m_size - 1, m_size); }