[all-commits] [llvm/llvm-project] 7cafe0: [libc++] P3029R1: Better `mdspan`'s CTAD (#87873)
Xiaoyang Liu via All-commits
all-commits at lists.llvm.org
Fri Apr 12 11:32:45 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 7cafe04e0d74c1e9f7e3871a0bcdf4ccb1c89f0c
https://github.com/llvm/llvm-project/commit/7cafe04e0d74c1e9f7e3871a0bcdf4ccb1c89f0c
Author: Xiaoyang Liu <siujoeng.lau at gmail.com>
Date: 2024-04-12 (Fri, 12 Apr 2024)
Changed paths:
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/docs/Status/Cxx2cPapers.csv
M libcxx/include/__mdspan/mdspan.h
M libcxx/include/mdspan
M libcxx/include/span
M libcxx/test/std/containers/views/mdspan/mdspan/deduction.pass.cpp
M libcxx/test/std/containers/views/views.span/span.cons/deduct.pass.cpp
Log Message:
-----------
[libc++] P3029R1: Better `mdspan`'s CTAD (#87873)
## Abstract
This pull request implements [P3029R1](https://wg21.link/P3029R1). The
paper discusses the current behavior of `mdspan`'s most common
pointer-indices CTAD, where the `Extents` template parameter is deduced
as `dextents` (dynamic extents), even when passing compile-time constant
values. The author believes this behavior is suboptimal, as it doesn't
take advantage of the compile-time information. The proposed change
suggests deducing static extents if `integral_constant`-like constants
are passed, resulting in more intuitive syntax and less error-prone
code.
## Reference
- [P3029R1](https://wg21.link/P3029R1)
- [Draft C++ Standard: [span.syn]](https://eel.is/c++draft/span.syn)
- [Draft C++ Standard: [mdspan.syn]](https://eel.is/c++draft/mdspan.syn)
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list