]> git.ipfire.org Git - thirdparty/gcc.git/commit
Tweak C++2a uses-allocator construction utilities
authorJonathan Wakely <jwakely@redhat.com>
Fri, 10 May 2019 22:23:06 +0000 (23:23 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 10 May 2019 22:23:06 +0000 (23:23 +0100)
commitad2c7788a90f93a25b4ce6dc35f87558f658cf25
tree27d2a3b75a12072e00a6e597b30542c115d95c73
parentc252ffdb11130c77772e92c2136ecd7045972afb
Tweak C++2a uses-allocator construction utilities

The 20_util/scoped_allocator/69293_neg.cc test was failing in C++2a mode
because the expected static_assert text wasn't matched. The code is
still ill-formed in C++2a, but uses the new __uses_alloc_args function
and so fails a different static_assert. This patch adds the same string
to the new static_assert, so the test passes.

Now that G++ allows concepts to be declared without 'bool' we can use
the correct C++2a syntax for the _Std_pair concept used to constrain the
uses-allocator construction utilities.

Also add a new test to verify that pmr::polymorphic_allocator correctly
performs recursive uses-allocator construction for nested pairs in
C++2a.

Backport from mainline
2019-04-26  Jonathan Wakely  <jwakely@redhat.com>

* include/std/memory (__uses_alloc_args): Add string-literal to
static_assert, to match the one in __uses_alloc.
[__cpp_concepts] (_Std_pair): Use C++2a syntax for concept.
* testsuite/20_util/polymorphic_allocator/construct_c++2a.cc: Check
for recursive uses-allocator construction of nested pairs.
* testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc:: Add
comment.

From-SVN: r271082
libstdc++-v3/ChangeLog
libstdc++-v3/include/std/memory
libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_c++2a.cc
libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc