[#BloombergLP-bdlde-Utf8Util-advanceIfValid-06] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlde.adoc[bdlde]::xref:BloombergLP/bdlde/Utf8Util.adoc[Utf8Util]::advanceIfValid :relfileprefix: ../../../ :mrdocs: Advance past 0 or more consecutive _valid_ Unicode code points at the beginning of the specified `string`, until either the specified `numCodePoints` bytes or the whole `string` have been traversed, or invalid UTF‐8 is encountered (whichever occurs first), and return the number of Unicode code points traversed. Set the specified `*status` to 0 if no invalid UTF‐8 is encountered, and to a value from the `ErrorStatus` `enum` otherwise. Set the specified `*result` to the address of the byte immediately following the last valid code point traversed, or to `string` if its length or `numCodePoints` is 0. `string` need not be null‐terminated and can contain embedded null bytes. The behavior is undefined unless `0 <= numCodePoints`. Note that the value returned will be in the range `[0 .. numCodePoints]`. Also note that `string` may contain less than `string.length()` Unicode code points. == Synopsis Declared in `<bdlde_utf8util.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static xref:BloombergLP/bdlde/Utf8Util/IntPtr.adoc[Utf8Util::IntPtr] advanceIfValid( int* status, char const** result, std::string_view const& string, xref:BloombergLP/bdlde/Utf8Util/IntPtr.adoc[IntPtr] numCodePoints); ---- [.small]#Created with https://www.mrdocs.com[MrDocs]#