rapidyaml 0.16.0
parse and emit YAML, and do it fast
Loading...
Searching...
No Matches
c4::basic_substring< C >::split_proxy_impl::split_iterator_impl Struct Reference

#include <substr.hpp>

Public Member Functions

 split_iterator_impl (split_proxy_impl const *proxy, size_t pos, C sep)
void _tick ()
split_iterator_imploperator++ ()
split_iterator_impl operator++ (int)
basic_substringoperator* ()
basic_substringoperator-> ()
bool operator!= (split_iterator_impl const &that) const
bool operator== (split_iterator_impl const &that) const

Public Attributes

split_proxy_impl const * m_proxy
basic_substring m_str
size_t m_pos
NCC_ m_sep

Detailed Description

template<class C>
struct c4::basic_substring< C >::split_proxy_impl::split_iterator_impl

Definition at line 1846 of file substr.hpp.

Constructor & Destructor Documentation

◆ split_iterator_impl()

template<class C>
c4::basic_substring< C >::split_proxy_impl::split_iterator_impl::split_iterator_impl ( split_proxy_impl const * proxy,
size_t pos,
C sep )
inline

Member Function Documentation

◆ _tick()

template<class C>
void c4::basic_substring< C >::split_proxy_impl::split_iterator_impl::_tick ( )
inline

Definition at line 1859 of file substr.hpp.

1860 {
1861 m_proxy->m_str.next_split(m_sep, &m_pos, &m_str);
1862 }

Referenced by split_iterator_impl(), operator++(), and operator++().

◆ operator++() [1/2]

template<class C>
split_iterator_impl & c4::basic_substring< C >::split_proxy_impl::split_iterator_impl::operator++ ( )
inline

Definition at line 1864 of file substr.hpp.

1864{ _tick(); return *this; }

◆ operator++() [2/2]

template<class C>
split_iterator_impl c4::basic_substring< C >::split_proxy_impl::split_iterator_impl::operator++ ( int )
inline

Definition at line 1865 of file substr.hpp.

1865{ split_iterator_impl it = *this; _tick(); return it; } // NOLINT
split_iterator_impl(split_proxy_impl const *proxy, size_t pos, C sep)
Definition substr.hpp:1853

◆ operator*()

template<class C>
basic_substring & c4::basic_substring< C >::split_proxy_impl::split_iterator_impl::operator* ( )
inline

Definition at line 1867 of file substr.hpp.

1867{ return m_str; }

◆ operator->()

template<class C>
basic_substring * c4::basic_substring< C >::split_proxy_impl::split_iterator_impl::operator-> ( )
inline

Definition at line 1868 of file substr.hpp.

1868{ return &m_str; }

◆ operator!=()

template<class C>
bool c4::basic_substring< C >::split_proxy_impl::split_iterator_impl::operator!= ( split_iterator_impl const & that) const
inline

Definition at line 1870 of file substr.hpp.

1871 {
1872 return !(this->operator==(that));
1873 }
bool operator==(split_iterator_impl const &that) const
Definition substr.hpp:1874

◆ operator==()

template<class C>
bool c4::basic_substring< C >::split_proxy_impl::split_iterator_impl::operator== ( split_iterator_impl const & that) const
inline

Definition at line 1874 of file substr.hpp.

1875 {
1876 C4_XASSERT((m_sep == that.m_sep) && "cannot compare split iterators with different separators");
1877 if(m_str.size() != that.m_str.size())
1878 return false;
1879 if(m_str.data() != that.m_str.data())
1880 return false;
1881 return m_pos == that.m_pos;
1882 }
size_t size() const noexcept
Definition substr.hpp:358
C * data() noexcept
Definition substr.hpp:366

Referenced by operator!=().

Member Data Documentation

◆ m_proxy

template<class C>
split_proxy_impl const* c4::basic_substring< C >::split_proxy_impl::split_iterator_impl::m_proxy

Definition at line 1848 of file substr.hpp.

Referenced by split_iterator_impl(), and _tick().

◆ m_str

template<class C>
basic_substring c4::basic_substring< C >::split_proxy_impl::split_iterator_impl::m_str

Definition at line 1849 of file substr.hpp.

Referenced by _tick(), operator*(), operator->(), and operator==().

◆ m_pos

template<class C>
size_t c4::basic_substring< C >::split_proxy_impl::split_iterator_impl::m_pos

Definition at line 1850 of file substr.hpp.

Referenced by split_iterator_impl(), _tick(), and operator==().

◆ m_sep

template<class C>
NCC_ c4::basic_substring< C >::split_proxy_impl::split_iterator_impl::m_sep

Definition at line 1851 of file substr.hpp.

Referenced by split_iterator_impl(), _tick(), and operator==().


The documentation for this struct was generated from the following file:
  • /home/docs/checkouts/readthedocs.org/user_builds/rapidyaml/checkouts/latest/ext/c4core.src/c4/substr.hpp