qxLib
Public Member Functions | Static Public Member Functions | List of all members
qx::base_string_view_iterator< char_t, bForwardIterator > Class Template Reference

Iterator class that allows to iterate over a string view using a delimiter character. More...

#include <string_view_iterator.h>

Public Member Functions

constexpr base_string_view_iterator (value_type svFull, char_t chDelimiter, flags< delimiter_inclusion_flags > eDelimiterInclusionFlags=delimiter_inclusion_flags::none) noexcept
 base_string_view_iterator object constructor More...
 
constexpr operator bool () const noexcept
 Check if this iterator is valid (i.e. it didn't reach the end of the sequence) More...
 

Static Public Member Functions

constexpr static base_string_view_iterator begin (value_type svFull, char_t chDelimiter, flags< delimiter_inclusion_flags > eDelimiterInclusionFlags=delimiter_inclusion_flags::none) noexcept
 Return iterator to beginning. More...
 
constexpr static base_string_view_iterator end (value_type svFull, char_t chDelimiter, flags< delimiter_inclusion_flags > eDelimiterInclusionFlags=delimiter_inclusion_flags::none) noexcept
 Return iterator to end. More...
 

Detailed Description

template<class char_t, bool bForwardIterator>
class qx::base_string_view_iterator< char_t, bForwardIterator >

Iterator class that allows to iterate over a string view using a delimiter character.

Template Parameters
char_t- char type
bForwardIterator- false if this is a reverse iterator
Author
Khrapov
Date
24.10.2023
// usage 1, convenient way
for (auto it = qx::string_view_iterator("/a/bb/ccc/dddd/", `/`); it; ++it)
std::print("{}", *it);
Iterator class that allows to iterate over a string view using a delimiter character.
// usage 2, view adapter friendly way
auto itBegin = qx::string_view_iterator::begin("/a/bb/ccc/dddd/", `/`);
auto itEnd = qx::string_view_iterator::end("/a/bb/ccc/dddd/", `/`);
for (auto it = itBegin; it != itEnd; ++it)
{
std::print("{}", *it);
}
constexpr static base_string_view_iterator end(value_type svFull, char_t chDelimiter, flags< delimiter_inclusion_flags > eDelimiterInclusionFlags=delimiter_inclusion_flags::none) noexcept
Return iterator to end.
constexpr static base_string_view_iterator begin(value_type svFull, char_t chDelimiter, flags< delimiter_inclusion_flags > eDelimiterInclusionFlags=delimiter_inclusion_flags::none) noexcept
Return iterator to beginning.

Definition at line 53 of file string_view_iterator.h.

Constructor & Destructor Documentation

◆ base_string_view_iterator()

template<class char_t , bool bForwardIterator>
constexpr qx::base_string_view_iterator< char_t, bForwardIterator >::base_string_view_iterator ( value_type  svFull,
char_t  chDelimiter,
flags< delimiter_inclusion_flags >  eDelimiterInclusionFlags = delimiter_inclusion_flags::none 
)
constexprnoexcept

base_string_view_iterator object constructor

Parameters
svFull- string to iterate
chDelimiter- delimiter character
eDelimiterInclusionFlags- flags that determine whether to include delimiters in parts when iterating

Definition at line 14 of file string_view_iterator.inl.

Member Function Documentation

◆ begin()

template<class char_t , bool bForwardIterator>
constexpr base_string_view_iterator< char_t, bForwardIterator > qx::base_string_view_iterator< char_t, bForwardIterator >::begin ( value_type  svFull,
char_t  chDelimiter,
flags< delimiter_inclusion_flags >  eDelimiterInclusionFlags = delimiter_inclusion_flags::none 
)
staticconstexprnoexcept

Return iterator to beginning.

Parameters
svFull- string to iterate
chDelimiter- delimiter character
eDelimiterInclusionFlags- flags that determine whether to include delimiters in parts when iterating
Return values
-iterator to beginning

Definition at line 34 of file string_view_iterator.inl.

◆ end()

template<class char_t , bool bForwardIterator>
constexpr base_string_view_iterator< char_t, bForwardIterator > qx::base_string_view_iterator< char_t, bForwardIterator >::end ( value_type  svFull,
char_t  chDelimiter,
flags< delimiter_inclusion_flags >  eDelimiterInclusionFlags = delimiter_inclusion_flags::none 
)
staticconstexprnoexcept

Return iterator to end.

Parameters
svFull- string to iterate
chDelimiter- delimiter character
eDelimiterInclusionFlags- flags that determine whether to include delimiters in parts when iterating
Return values
-iterator to end

Definition at line 41 of file string_view_iterator.inl.

◆ operator bool()

template<class char_t , bool bForwardIterator>
constexpr qx::base_string_view_iterator< char_t, bForwardIterator >::operator bool
constexprnoexcept

Check if this iterator is valid (i.e. it didn't reach the end of the sequence)

Return values
-true if this iterator is valid

Definition at line 28 of file string_view_iterator.inl.


The documentation for this class was generated from the following files: