ICU 78.1  78.1
Public Member Functions
U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range > Class Template Reference

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. More...
 
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. More...
 
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. More...
 
 UnsafeUTFStringCodePoints (const UnsafeUTFStringCodePoints &other)=default
 Copy constructor. More...
 
UnsafeUTFStringCodePointsoperator= (const UnsafeUTFStringCodePoints &other)=default
 Copy assignment operator. More...
 
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
 

Detailed Description

template<typename CP32, typename Range>
class U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range >

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.

Template Parameters
CP32Code point type: UChar32 (=int32_t) or char32_t or uint32_t
RangeA C++ "range" of Unicode UTF-8/16/32 code units
Draft:
This API may be changed in the future versions and was introduced in ICU 78
See also
unsafeUTFStringCodePoints

Definition at line 2470 of file utfiterator.h.

Constructor & Destructor Documentation

◆ UnsafeUTFStringCodePoints() [1/4]

template<typename CP32 , typename Range >
U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range >::UnsafeUTFStringCodePoints ( )
default

Constructs an empty C++ "range" object.

Draft:
This API may be changed in the future versions and was introduced in ICU 78

◆ UnsafeUTFStringCodePoints() [2/4]

template<typename CP32 , typename Range >
template<typename R = Range, typename = std::enable_if_t<!std::is_reference_v<R>>>
U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range >::UnsafeUTFStringCodePoints ( Range  unitRange)
inlineexplicit

Constructs a C++ "range" object over the code points in the string.

Parameters
unitRangeinput range
Draft:
This API may be changed in the future versions and was introduced in ICU 78

Definition at line 2485 of file utfiterator.h.

◆ UnsafeUTFStringCodePoints() [3/4]

template<typename CP32 , typename Range >
template<typename R = Range, typename = std::enable_if_t<std::is_reference_v<R>>, typename = void>
U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range >::UnsafeUTFStringCodePoints ( Range  unitRange)
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).

Parameters
unitRangeinput range
Draft:
This API may be changed in the future versions and was introduced in ICU 78

Definition at line 2495 of file utfiterator.h.

◆ UnsafeUTFStringCodePoints() [4/4]

template<typename CP32 , typename Range >
U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range >::UnsafeUTFStringCodePoints ( const UnsafeUTFStringCodePoints< CP32, Range > &  other)
default

Copy constructor.

Draft:
This API may be changed in the future versions and was introduced in ICU 78

Member Function Documentation

◆ begin() [1/2]

template<typename CP32 , typename Range >
auto U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range >::begin ( )
inline
Returns
the range start iterator
Draft:
This API may be changed in the future versions and was introduced in ICU 78

Definition at line 2507 of file utfiterator.h.

Referenced by U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range >::rend().

◆ begin() [2/2]

template<typename CP32 , typename Range >
template<typename R = Range, typename = std::enable_if_t<prv::range<const R>>>
auto U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range >::begin ( ) const
inline
Returns
the range start iterator
Draft:
This API may be changed in the future versions and was introduced in ICU 78

Definition at line 2516 of file utfiterator.h.

◆ end() [1/2]

template<typename CP32 , typename Range >
auto U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range >::end ( )
inline
Returns
the range limit (exclusive end) iterator
Draft:
This API may be changed in the future versions and was introduced in ICU 78

Definition at line 2524 of file utfiterator.h.

Referenced by U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range >::rbegin().

◆ end() [2/2]

template<typename CP32 , typename Range >
template<typename R = Range, typename = std::enable_if_t<prv::range<const R>>>
auto U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range >::end ( ) const
inline
Returns
the range limit (exclusive end) iterator
Draft:
This API may be changed in the future versions and was introduced in ICU 78

Definition at line 2540 of file utfiterator.h.

◆ operator=()

template<typename CP32 , typename Range >
UnsafeUTFStringCodePoints& U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range >::operator= ( const UnsafeUTFStringCodePoints< CP32, Range > &  other)
default

Copy assignment operator.

Draft:
This API may be changed in the future versions and was introduced in ICU 78

◆ rbegin()

template<typename CP32 , typename Range >
auto U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range >::rbegin ( ) const
inline
Returns
std::reverse_iterator(end())
Draft:
This API may be changed in the future versions and was introduced in ICU 78

Definition at line 2555 of file utfiterator.h.

References U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range >::end().

◆ rend()

template<typename CP32 , typename Range >
auto U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range >::rend ( ) const
inline
Returns
std::reverse_iterator(begin())
Draft:
This API may be changed in the future versions and was introduced in ICU 78

Definition at line 2563 of file utfiterator.h.

References U_HEADER_ONLY_NAMESPACE::UnsafeUTFStringCodePoints< CP32, Range >::begin().


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