* Read UTF-8 character, and advance reader. * @param def Default value to return, if no valid data. * @return Read char, 'def' if no valid data. * @note The reader is advanced, even if no valid data was present. */
| 423 | * @note The reader is advanced, even if no valid data was present. |
| 424 | */ |
| 425 | [[nodiscard]] char32_t ReadUtf8(char32_t def = '?') |
| 426 | { |
| 427 | auto [len, value] = this->PeekUtf8(); |
| 428 | this->Skip(len > 0 ? len : 1); // advance at least one byte |
| 429 | return len > 0 ? value : def; |
| 430 | } |
| 431 | /** |
| 432 | * Skip UTF-8 character, and advance reader. |
| 433 | * @note The reader is advanced, even if no valid data was present. |
no test coverage detected