diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2024-07-10 10:29:52 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2024-07-10 22:05:22 +0100 |
commit | c5efc6eca8e3eee7038ae218cf7e2dbe9ed9d82a (patch) | |
tree | fe988dbbe222495378317a536125a0aa1582041b /libstdc++-v3/testsuite | |
parent | cda469a59e222496248025e0834a15d466f79d4a (diff) | |
download | gcc-c5efc6eca8e3eee7038ae218cf7e2dbe9ed9d82a.zip gcc-c5efc6eca8e3eee7038ae218cf7e2dbe9ed9d82a.tar.gz gcc-c5efc6eca8e3eee7038ae218cf7e2dbe9ed9d82a.tar.bz2 |
libstdc++: Use direct-initialization for std::vector<bool>'s allocator [PR115854]
The consensus in the standard committee is that this change shouldn't be
necessary, and the Allocator requirements should require conversions
between rebound allocators to be implicit. But we can make it work for
now anyway.
libstdc++-v3/ChangeLog:
PR libstdc++/115854
* include/bits/stl_bvector.h (_Bvector_base): Convert allocator
to rebound type explicitly.
* testsuite/23_containers/vector/allocator/115854.cc: New test.
* testsuite/23_containers/vector/bool/allocator/115854.cc: New test.
Diffstat (limited to 'libstdc++-v3/testsuite')
-rw-r--r-- | libstdc++-v3/testsuite/23_containers/vector/allocator/115854.cc | 10 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/23_containers/vector/bool/allocator/115854.cc | 10 |
2 files changed, 20 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/23_containers/vector/allocator/115854.cc b/libstdc++-v3/testsuite/23_containers/vector/allocator/115854.cc new file mode 100644 index 0000000..6c9016b --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/vector/allocator/115854.cc @@ -0,0 +1,10 @@ +// { dg-do compile { target c++11 } } + +#include <vector> +#include <testsuite_allocator.h> + +__gnu_test::ExplicitConsAlloc<int> alloc; +std::vector<int, __gnu_test::ExplicitConsAlloc<int>> v; +std::vector<int, __gnu_test::ExplicitConsAlloc<int>> v1(alloc); +std::vector<int, __gnu_test::ExplicitConsAlloc<int>> v2(v1, alloc); +std::vector<int, __gnu_test::ExplicitConsAlloc<int>> v3(std::move(v1), alloc); diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/allocator/115854.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/allocator/115854.cc new file mode 100644 index 0000000..14b28cc --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/vector/bool/allocator/115854.cc @@ -0,0 +1,10 @@ +// { dg-do compile { target c++11 } } + +#include <vector> +#include <testsuite_allocator.h> + +__gnu_test::ExplicitConsAlloc<bool> alloc; +std::vector<bool, __gnu_test::ExplicitConsAlloc<bool>> v; +std::vector<bool, __gnu_test::ExplicitConsAlloc<bool>> v1(alloc); +std::vector<bool, __gnu_test::ExplicitConsAlloc<bool>> v2(v1, alloc); +std::vector<bool, __gnu_test::ExplicitConsAlloc<bool>> v3(std::move(v1), alloc); |