| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| array | ||
| bitset | ||
| deque | ||
| forward_list | ||
| headers | ||
| list | ||
| map | ||
| multimap | ||
| multiset | ||
| priority_queue | ||
| queue | ||
| set | ||
| span | ||
| stack | ||
| unordered_map | ||
| unordered_multimap | ||
| unordered_multiset | ||
| unordered_set | ||
| vector |
By trying to reuse the existing std::_Construct function as a wrapper for std::construct_at I introduced regressions, because changing std::_Construct to return non-void made it ill-formed for array types. The solution is to revert _Construct to its former state, and change allocator_traits::construct to explicitly call construct_at instead. This decouples all the existing callers of _Construct from the new construct_at requirements. PR libstdc++/94831 * include/bits/alloc_traits.h (_S_construct): Restore placement new-expression for C++11/14/17 and call std::construct_at directly for C++20. * include/bits/stl_construct.h (_Construct): Revert to non-constexpr function returning void. * testsuite/20_util/specialized_algorithms/ uninitialized_value_construct/94831.cc: New test. * testsuite/23_containers/vector/cons/94831.cc: New test.
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| array | Loading commit data... | |
| bitset | Loading commit data... | |
| deque | Loading commit data... | |
| forward_list | Loading commit data... | |
| headers | Loading commit data... | |
| list | Loading commit data... | |
| map | Loading commit data... | |
| multimap | Loading commit data... | |
| multiset | Loading commit data... | |
| priority_queue | Loading commit data... | |
| queue | Loading commit data... | |
| set | Loading commit data... | |
| span | Loading commit data... | |
| stack | Loading commit data... | |
| unordered_map | Loading commit data... | |
| unordered_multimap | Loading commit data... | |
| unordered_multiset | Loading commit data... | |
| unordered_set | Loading commit data... | |
| vector | Loading commit data... |