[libcxx-commits] [libcxx] [libc++] Partially implement P2642R6: Padded mdspan layouts (PR #187873)
via libcxx-commits
libcxx-commits at lists.llvm.org
Sat Mar 21 10:35:38 PDT 2026
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff origin/main HEAD --extensions ,inc,cpp,h -- libcxx/include/__mdspan/layout_common.h libcxx/include/__mdspan/layout_left_padded.h libcxx/include/__mdspan/layout_right_padded.h libcxx/test/std/containers/views/mdspan/layout_left/ctor.layout_left_padded.pass.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/comparison.pass.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/ctor.copy.pass.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/ctor.default.pass.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/ctor.extents.pass.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/ctor.layout_left.pass.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/ctor.layout_right.pass.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/ctor.layout_right_padded.pass.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/ctor.layout_stride.pass.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/ctor.mapping.assert.pass.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/ctor.mapping.pass.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/ctor.padding.pass.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/extents.verify.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/index_operator.pass.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/properties.pass.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/required_span_size.pass.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/static_requirements.pass.cpp libcxx/test/std/containers/views/mdspan/layout_left_padded/stride.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right/ctor.layout_right_padded.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/comparison.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.copy.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.default.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.extents.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.layout_left.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.layout_left_padded.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.layout_right.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.layout_stride.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.mapping.assert.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.mapping.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.padding.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/extents.verify.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/index_operator.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/properties.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/required_span_size.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/static_requirements.pass.cpp libcxx/test/std/containers/views/mdspan/layout_right_padded/stride.pass.cpp libcxx/include/__fwd/mdspan.h libcxx/include/__mdspan/layout_left.h libcxx/include/__mdspan/layout_right.h libcxx/include/__mdspan/layout_stride.h libcxx/include/mdspan libcxx/modules/std/mdspan.inc --diff_from_common_commit
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/libcxx/test/std/containers/views/mdspan/layout_left_padded/comparison.pass.cpp b/libcxx/test/std/containers/views/mdspan/layout_left_padded/comparison.pass.cpp
index 4f50686d9..ff85c44dc 100644
--- a/libcxx/test/std/containers/views/mdspan/layout_left_padded/comparison.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/layout_left_padded/comparison.pass.cpp
@@ -71,12 +71,12 @@ constexpr bool test() {
false, dynamic_mapping(std::extents<size_t, D, 3>(5), 5), dynamic_mapping(std::extents<size_t, D, 3>(5), 8));
}
- static_assert(compare_layout_mappings(std::layout_left_padded<4>::mapping<std::extents<int, D>>(std::extents<int, D>(5)),
- std::layout_left_padded<4>::mapping<std::extents<int, 5>>()));
- static_assert(
- compare_layout_mappings(std::layout_left_padded<4>::mapping<std::extents<int>>(),
- std::layout_left_padded<4>::mapping<std::extents<int, 1>>())
- .does_not_match());
+ static_assert(compare_layout_mappings(
+ std::layout_left_padded<4>::mapping<std::extents<int, D>>(std::extents<int, D>(5)),
+ std::layout_left_padded<4>::mapping<std::extents<int, 5>>()));
+ static_assert(compare_layout_mappings(std::layout_left_padded<4>::mapping<std::extents<int>>(),
+ std::layout_left_padded<4>::mapping<std::extents<int, 1>>())
+ .does_not_match());
static_assert(compare_layout_mappings(std::layout_left_padded<4>::mapping<std::extents<int, 5, 7>>(),
std::layout_left_padded<4>::mapping<std::extents<int, 5>>())
.does_not_match());
diff --git a/libcxx/test/std/containers/views/mdspan/layout_right_padded/comparison.pass.cpp b/libcxx/test/std/containers/views/mdspan/layout_right_padded/comparison.pass.cpp
index 8eab23675..90d0a05d6 100644
--- a/libcxx/test/std/containers/views/mdspan/layout_right_padded/comparison.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/layout_right_padded/comparison.pass.cpp
@@ -71,13 +71,12 @@ constexpr bool test() {
false, dynamic_mapping(std::extents<size_t, D, 3>(5), 5), dynamic_mapping(std::extents<size_t, D, 3>(5), 8));
}
- static_assert(
- compare_layout_mappings(std::layout_right_padded<4>::mapping<std::extents<int, D>>(std::extents<int, D>(5)),
- std::layout_right_padded<4>::mapping<std::extents<int, 5>>()));
- static_assert(
- compare_layout_mappings(std::layout_right_padded<4>::mapping<std::extents<int>>(),
- std::layout_right_padded<4>::mapping<std::extents<int, 1>>())
- .does_not_match());
+ static_assert(compare_layout_mappings(
+ std::layout_right_padded<4>::mapping<std::extents<int, D>>(std::extents<int, D>(5)),
+ std::layout_right_padded<4>::mapping<std::extents<int, 5>>()));
+ static_assert(compare_layout_mappings(std::layout_right_padded<4>::mapping<std::extents<int>>(),
+ std::layout_right_padded<4>::mapping<std::extents<int, 1>>())
+ .does_not_match());
static_assert(compare_layout_mappings(std::layout_right_padded<4>::mapping<std::extents<int, 5, 7>>(),
std::layout_right_padded<4>::mapping<std::extents<int, 5>>())
.does_not_match());
diff --git a/libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.copy.pass.cpp b/libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.copy.pass.cpp
index f8e793933..8bdc53ee4 100644
--- a/libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.copy.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.copy.pass.cpp
@@ -39,13 +39,15 @@ constexpr bool test() {
test_copy_semantics(
std::layout_right_padded<4>::mapping<std::extents<uint32_t, 5, 7>>(std::extents<int32_t, 5, 7>()));
test_copy_semantics(std::layout_right_padded<4>::mapping<std::extents<int8_t, D>>(std::extents<int8_t, D>(5)));
- test_copy_semantics(std::layout_right_padded<4>::mapping<std::extents<uint8_t, D, 7>>(std::extents<uint8_t, D, 7>(5)));
+ test_copy_semantics(
+ std::layout_right_padded<4>::mapping<std::extents<uint8_t, D, 7>>(std::extents<uint8_t, D, 7>(5)));
test_copy_semantics(std::layout_right_padded<D>::mapping<std::extents<int32_t>>());
test_copy_semantics(
std::layout_right_padded<D>::mapping<std::extents<uint32_t, 5, 7>>(std::extents<int32_t, 5, 7>()));
test_copy_semantics(std::layout_right_padded<D>::mapping<std::extents<int8_t, D>>(std::extents<int8_t, D>(5), 5));
- test_copy_semantics(std::layout_right_padded<D>::mapping<std::extents<uint8_t, D, 7>>(std::extents<uint8_t, D, 7>(5)));
+ test_copy_semantics(
+ std::layout_right_padded<D>::mapping<std::extents<uint8_t, D, 7>>(std::extents<uint8_t, D, 7>(5)));
return true;
}
diff --git a/libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.extents.pass.cpp b/libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.extents.pass.cpp
index 3ab5f1523..6526b54b9 100644
--- a/libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.extents.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/layout_right_padded/ctor.extents.pass.cpp
@@ -18,8 +18,8 @@
#include <mdspan>
template <size_t PaddingValue, class Extents>
-constexpr void test_construction(Extents extents,
- std::array<typename Extents::index_type, Extents::rank()> expected_strides) {
+constexpr void
+test_construction(Extents extents, std::array<typename Extents::index_type, Extents::rank()> expected_strides) {
using Mapping = typename std::layout_right_padded<PaddingValue>::template mapping<Extents>;
static_assert(Mapping::padding_value == PaddingValue);
``````````
</details>
https://github.com/llvm/llvm-project/pull/187873
More information about the libcxx-commits
mailing list