|
ICU 78.2 78.2
|
A C++ "range" for non-validating iteration over all of the code points of a code unit range. More...
#include <utfiterator.h>
Public Member Functions | |
| UnsafeUTFStringCodePoints ()=default | |
| Constructs an empty C++ "range" object. | |
| template<typename R = Range, typename = std::enable_if_t<!std::is_reference_v<R>>> | |
| UnsafeUTFStringCodePoints (Range unitRange) | |
| Constructs a C++ "range" object over the code points in the string. | |
| template<typename R = Range, typename = std::enable_if_t<std::is_reference_v<R>>, typename = void> | |
| UnsafeUTFStringCodePoints (Range unitRange) | |
| Constructs a C++ "range" object over the code points in the string, keeping a reference to the code unit range. | |
| UnsafeUTFStringCodePoints (const UnsafeUTFStringCodePoints &other)=default | |
| Copy constructor. | |
| UnsafeUTFStringCodePoints & | operator= (const UnsafeUTFStringCodePoints &other)=default |
| Copy assignment operator. | |
| auto | begin () |
| template<typename R = Range, typename = std::enable_if_t<prv::range<const R>>> | |
| auto | begin () const |
| auto | end () |
| template<typename R = Range, typename = std::enable_if_t<prv::range<const R>>> | |
| auto | end () const |
| auto | rbegin () const |
| auto | rend () const |
A C++ "range" for non-validating iteration over all of the code points of a code unit range.
The string must be well-formed.
Call unsafeUTFStringCodePoints() to have the compiler deduce the Range type.
UnsafeUTFStringCodePoints is conditionally borrowed; that is, if Range is a borrowed range so is UnsafeUTFStringCodePoints<CP32, behavior, Range>. Note that when given a range r that is an lvalue and is not a view, unsafeUTFStringCodePoints(r) uses a ref_view of r as the Range type, which is a borrowed range. In practice, this means that given a container variable r, the iterators of unsafeUTFStringCodePoints(r) can be used as long as iterators on r are valid, without having to keep unsafeUTFStringCodePoints(r) around. For instance:
| CP32 | Code point type: UChar32 (=int32_t) or char32_t or uint32_t |
| Range | A C++ "range" of Unicode UTF-8/16/32 code units |
Definition at line 2518 of file utfiterator.h.
|
default |
Constructs an empty C++ "range" object.
Referenced by operator=(), and UnsafeUTFStringCodePoints().
|
inlineexplicit |
Constructs a C++ "range" object over the code points in the string.
| unitRange | input range |
Definition at line 2533 of file utfiterator.h.
|
inlineexplicit |
Constructs a C++ "range" object over the code points in the string, keeping a reference to the code unit range.
This overload is used by utfStringCodePoints in C++17; in C++20, a ref_view is used instead (via views::all).
| unitRange | input range |
Definition at line 2543 of file utfiterator.h.
|
default |
Copy constructor.
References UnsafeUTFStringCodePoints().
|
inline |
Definition at line 2555 of file utfiterator.h.
Referenced by rend().
|
inline |
Definition at line 2564 of file utfiterator.h.
|
inline |
Definition at line 2572 of file utfiterator.h.
Referenced by rbegin().
|
inline |
Definition at line 2588 of file utfiterator.h.
|
default |
Copy assignment operator.
References UnsafeUTFStringCodePoints().
|
inline |
Definition at line 2603 of file utfiterator.h.
References end().
|
inline |
Definition at line 2611 of file utfiterator.h.
References begin().