diff --git a/iterator.hpp b/iterator.hpp index e1318030..15a70ab9 100644 --- a/iterator.hpp +++ b/iterator.hpp @@ -297,6 +297,11 @@ namespace util { iterator begin (void) const { return iterator { value_type {0} }; } iterator end (void) const { return iterator { value_type (m_container.size ()) }; } + constexpr auto size (void) const noexcept + { + return std::size (m_container); + } + private: const ContainerT &m_container; }; diff --git a/string.hpp b/string.hpp index 2a5207ab..ee567db1 100644 --- a/string.hpp +++ b/string.hpp @@ -127,6 +127,16 @@ namespace util { iterator cend (void) const { return { { m_range.cend (), m_range.cend () }, m_separator }; } iterator end (void) const { return { { m_range.cend (), m_range.cend () }, m_separator }; } + std::size_t + size (void) const + { + return std::count ( + m_range.begin (), + m_range.end (), + m_separator + ) + 1u; + } + private: const range_type m_range; const value_type m_separator;