diff options
author | Patrick Palka <ppalka@redhat.com> | 2025-03-14 16:10:35 -0400 |
---|---|---|
committer | Patrick Palka <ppalka@redhat.com> | 2025-03-14 16:10:35 -0400 |
commit | 2f03a8d7be9775312c50abdc99109aaf8641bda3 (patch) | |
tree | 18dd515422bde8d614e2d7b7f2f0cc66bff61317 /libstdc++-v3/testsuite/std/ranges | |
parent | b2de4b0926bddbb97b991dd95592c714ee519e1e (diff) | |
download | gcc-2f03a8d7be9775312c50abdc99109aaf8641bda3.zip gcc-2f03a8d7be9775312c50abdc99109aaf8641bda3.tar.gz gcc-2f03a8d7be9775312c50abdc99109aaf8641bda3.tar.bz2 |
libstdc++: Missing 'constexpr' in vector's from_range ctor [PR119282]
A missing 'constexpr' in the non-forward (and non-sized) branch of our
recently implemented vector from_range ctor was causing this valid example
to be rejected with a cryptic error.
PR libstdc++/119282
libstdc++-v3/ChangeLog:
* include/bits/stl_vector.h (vector::vector(from_range_t)): Add
missing 'constexpr' to local class _Clear.
* testsuite/std/ranges/conv/1.cc (test_pr119282): New test.
Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
Diffstat (limited to 'libstdc++-v3/testsuite/std/ranges')
-rw-r--r-- | libstdc++-v3/testsuite/std/ranges/conv/1.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/std/ranges/conv/1.cc b/libstdc++-v3/testsuite/std/ranges/conv/1.cc index 09fd515..231cb9d 100644 --- a/libstdc++-v3/testsuite/std/ranges/conv/1.cc +++ b/libstdc++-v3/testsuite/std/ranges/conv/1.cc @@ -466,6 +466,18 @@ test_composition() auto str = adaptor(" "); } +constexpr bool +test_pr119282() +{ + // PR libstdc++/119282 + auto v = std::array{1, 2, 3} + | std::views::transform([](auto x) { return std::array{x}; }) + | std::views::join + | std::ranges::to<std::vector>(); + VERIFY( std::ranges::size(v) == 3 ); + return true; +} + int main() { test_p1206r7_examples(); @@ -480,4 +492,5 @@ int main() test_constexpr(); test_sfinae(); test_composition(); + static_assert(test_pr119282()); } |