REAL
Regular Expression Algorithmic Library — constexpr C++20 regex
Loading...
Searching...
No Matches
regex_iter.hpp File Reference

std::regex compatibility, part 3/3: regex_iterator and regex_token_iterator. More...

#include "regex_match.hpp"
#include <iterator>
#include <memory>
Include dependency graph for regex_iter.hpp:

Classes

struct  real::compat::detail::in_place_subject
 What a regex_iterator over contiguous storage keeps of its range for REAL: nothing, REAL searches the range where it lies. More...
 
struct  real::compat::detail::copied_subject< BidirIt >
 What a regex_iterator over a non-contiguous range keeps for REAL: one copy of the range, shared by the iterator's copies, and the cursor mapping its offsets back. On the heap because the walker views it: a short string held by value would move its characters with the iterator. More...
 
class  real::compat::regex_iterator< BidirIt, CharT, Traits >
 Iterates the non-overlapping matches of a pattern in a sequence (std::regex_iterator). More...
 
class  real::compat::regex_token_iterator< BidirIt, CharT, Traits >
 Enumerates selected sub-matches, or the text between matches (std::regex_token_iterator). More...
 

Namespaces

namespace  real
 REAL's public API: real::regex, real::static_regex, real::flags and the match/iterator types built on them.
 
namespace  real::compat
 Drop-in replacements for <regex>, backed by REAL's linear-time engine where it can serve the pattern and by std::regex otherwise, never by a silent divergence.
 
namespace  real::compat::detail
 Backend routing and format expansion for the compat layer. Not a stable API.
 

Typedefs

template<typename BidirIt >
using real::compat::detail::subject_for = std::conditional_t< std::contiguous_iterator< BidirIt >, in_place_subject, copied_subject< BidirIt > >
 The subject a regex_iterator over BidirIt keeps for REAL.
 
using real::compat::sregex_iterator = regex_iterator< std::string::const_iterator >
 Over a std::string.
 
using real::compat::cregex_iterator = regex_iterator< const char * >
 Over a C string.
 
using real::compat::wsregex_iterator = regex_iterator< std::wstring::const_iterator >
 Over a std::wstring (std).
 
using real::compat::wcregex_iterator = regex_iterator< const wchar_t * >
 Over a wide C string (std).
 
using real::compat::sregex_token_iterator = regex_token_iterator< std::string::const_iterator >
 Over a std::string.
 
using real::compat::cregex_token_iterator = regex_token_iterator< const char * >
 Over a C string.
 
using real::compat::wsregex_token_iterator = regex_token_iterator< std::wstring::const_iterator >
 Over a std::wstring (std).
 
using real::compat::wcregex_token_iterator = regex_token_iterator< const wchar_t * >
 Over a wide C string (std).
 

Detailed Description

std::regex compatibility, part 3/3: regex_iterator and regex_token_iterator.