libc++ Ranges Status

Overview

This document contains the status of the Ranges library in libc++. It is used to track both the status of the sub-projects of the ranges library and who is assigned to these sub-projects. This is imperative to effective implementation so that work is not duplicated and implementors are not blocked by each other.

If you are interested in contributing to the libc++ Ranges library, please send a message to the #libcxx channel in the LLVM discord. Please do not start working on any of the assigned items below.

Major features

Standard

Name

Assignee

CL

Status

C++23

ranges::to

Konstantin Varlamov

D142335

Complete

C++23

Pipe support for user-defined range adaptors

Louis Dionne, Jakub Mazurkiewicz, and Xiaoyang Liu

Various

Complete

C++23

Formatting Ranges

Mark de Wever

Various

Complete

C++20

Stashing stashing iterators for proper flattening

Jakub Mazurkiewicz

Various

In progress

Views

Standard

View

Assignee

CL

Status

C++20

empty

Zoe Carver

D103208

C++20

single

Zoe Carver

D106840

C++20

iota (view)

Zoe Carver

D107396

C++20

all

Zoe Carver

D102028

C++20

ref_view

Zoe Carver

D102020

C++20

owning_view

Arthur O’Dwyer

D116894

C++20

filter

Louis Dionne

D109086

C++20

transform

Zoe Carver

D103056

C++20

take

Zoe Carver

D106507

C++20

take_while

Hui Xie

D134952

C++20

drop

Zoe Carver

D102037

C++20

drop_while

Hui Xie

D135460

C++20

join

Zoe Carver

D107671

C++20

split

Hui Xie

D142063

C++20

lazy_split

Zoe Carver and Konstantin Varlamov

D107500

C++20

counted

Zoe Carver

D106923

C++20

common

Zoe Carver

D105753

C++20

reverse

Zoe Carver

D107096

C++20

elements / keys / values

Hui Xie

D136268

C++20

istream

Hui Xie

D133317

C++23

repeat

Yrong

D141699

C++23

cartesian_product

Unassigned

No patch yet

Not started

C++23

zip

Hui Xie

D122806

C++23

zip_transform

Hui Xie

No patch yet

Not started

C++23

adjacent

Hui Xie

No patch yet

Not started

C++23

adjacent_transform

Hui Xie

No patch yet

Not started

C++23

join_with

Jakub Mazurkiewicz

65536

In progress

C++23

slide

Will Hawkins

67146

In Progress

C++23

chunk

Unassigned

No patch yet

Not started

C++23

chunk_by

Jakub Mazurkiewicz

D144767

C++23

as_const

Unassigned

No patch yet

Not started

C++23

as_rvalue

Nikolas Klauser

D137637

C++23

stride

Hristo Hristov and Will Hawkins

D156924

In Progress

C++23

enumerate

Hristo Hristov

D157193

In Progress

Algorithms

Standard

Algorithm

Assignee

CL

Status

C++20

all C++20 algorithms

N/A

N/A

C++23

find_last

Nicole Mazzuca

#99312

Complete

C++23

find_last_if

Nicole Mazzuca

#99312

Complete

C++23

find_last_if_not

Nicole Mazzuca

#99312

Complete

C++23

starts_with

Zijun Zhao

D150735

Complete

C++23

ends_with

Zijun Zhao

D150831

Complete

C++23

shift_left

Unassigned

No patch yet

Not started

C++23

shift_right

Unassigned

No patch yet

Not started

C++23

iota (algorithm)

Unassigned

No patch yet

Not started

C++23

fold

Unassigned

No patch yet

Not started

C++23

contains

Zijun Zhao

#65148

Complete

C++23

fold_left_with_iter

Christopher Di Bella

N/A

Complete

C++23

fold_left

Christopher Di Bella

N/A

Complete

C++23

fold_left_first_with_iter

Christopher Di Bella

N/A

In progress

C++23

fold_left_first

Christopher Di Bella

N/A

In progress

C++23

fold_right

Christopher Di Bella

N/A

In progress

C++23

fold_right_last

Christopher Di Bella

N/A

In progress