Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 76 additions & 2 deletions papers/P2728.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Unicode in the Library, Part 1: UTF Transcoding"
document: P2728R14
date: 2026-06-10
document: D2728R15
date: 2026-07-11
audience:
- SG-16 Unicode
- SG-9 Ranges
Expand Down Expand Up @@ -1586,6 +1586,10 @@ An experimental implementation of `.base_code_units()` is available on the

# Changelog

## Changes since R14

- Revert SIMD support

## Changes since R13

- Fix typo in Table 3-9 of error handling diagram pointed out during SG16 review (`ED A0`
Expand Down Expand Up @@ -1782,6 +1786,76 @@ An experimental implementation of `.base_code_units()` is available on the

# Relevant Polls/Minutes

## SG9 review of P2728R14 on 2026-06-10 during Brno 2026

- [Minutes](https://wiki.isocpp.org/NotesSG9P2728R12)

**Poll: We want base() for forward ranges (at the expense of either iterating (but not reading) over a code point twice or caching an additional iterator (QoI)).**

SF| F | N | A | SA
---|---|---|---|---
2 | 4 | 0 | 0 | 0

Attendance: 7
Author: F
Unanimous consent.

**Poll: We want base_code_units() for input ranges (requires a cache and has potential lifetime issues).**

No objection to unanimous dissent.
Attendance: 7

**Poll: We want base_code_units() for forward ranges (pure syntactic sugar for `subrange(it.base(), next(it).base())`)**

SF| F | N | A | SA
---|---|---|---|---
1| 4 | 0 | 1 | 0

Attendance: 7
Author: F
Strong consensus.

A: I think it's probably useful, but I'm not certain, so let's wait.

**Poll: We want to change `to_utf_error_kind` in some way to allow more options in the future.**

No objection to unanimous consent.
Attendance: 7

**Poll: We want the transcoding view to be borrowed when the underlying view is borrowed (at the cost of storing three underlying iterators in each transcoding iterator instead of one and a pointer).**

SF| F | N | A | SA
---|---|---|---|---
1| 5 | 0 | 1 | 0

Attendance: 8
Author: F
Strong consenus.

A: I'm worried about the size and don't see as much value for borrowed-ness here.

**Poll: We want to leave implementations the freedom to eagerly buffer more code units to allow a SIMD transcoding technique.**

SF| F | N | A | SA
---|---|---|---|---
0| 0 | 3 | 3 | 1

Attendance: 8
Author: N
Strong consensus against.

ACTION ITEM: UTF-32 to UTF-32 transcoding should be random access if the underlying view is random access.

**Poll: Update P2728R14 "Unicode in the Library, Part 1: UTF Transcoding" as determined above and forward to LEWG.**

SF| F | N | A | SA
---|---|---|---|---
5| 3 | 0 | 0 | 0

Attendance: 8
Author: SF
Unanimous consent.

## SG16 review of P2728R13 on 2026-05-27 (Telecon)

- [Minutes](https://wiki.isocpp.org/2026_Telecons:SG16Teleconference2026-05-27)
Expand Down
Loading