/// Evaluates whether \c this and \c rhs are equivalent ss_bool_t equal(class_type const& rhs) const { STLSOFT_MESSAGE_ASSERT("Comparing iterators from different tokenisers", m_end == rhs.m_end); return m_find0 == rhs.m_find0; }
/// Constructor /// /// \param s The C-string for which this instance will act as a range cstring_range(value_type const* s) : m_s(s) { STLSOFT_MESSAGE_ASSERT("NULL string passed to cstring_range constructor", NULL != s); }
/// Returns the element at the given index /// /// \param index The offset of the requested element /// \note No runtime checking of the validity of the index is provided in release builds, only a debug-time assert reference operator [](ss_size_t index) { STLSOFT_MESSAGE_ASSERT("index out of bounds, in array_proxy", !(size() < index)); return m_begin[index]; }
/// Returns the element at the given index /// /// \param index The offset of the requested element /// \note No runtime checking of the validity of the index is provided in release builds, only a debug-time assert const_reference operator [](ss_size_t index) const { STLSOFT_MESSAGE_ASSERT("index out of bounds, in array_proxy", !(size() < index)); return const_cast<pointer>(m_begin)[index]; }
/// Returns the current value in the range value_type current() const { STLSOFT_MESSAGE_ASSERT("Attempting to access the value of a closed range", is_open()); return m_value; }