1 //===----------------------------------------------------------------------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 // template <class Compare> void merge(list& x, Compare comp);
12 // If (&addressof(x) == this) does nothing; otherwise ...
18 #include "test_macros.h"
19 #include "min_allocator.h"
24 int a1
[] = {10, 9, 7, 3, 1};
25 int a2
[] = {11, 8, 6, 5, 4, 2, 0};
26 int a3
[] = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
27 std::list
<int> c1(a1
, a1
+sizeof(a1
)/sizeof(a1
[0]));
28 std::list
<int> c2(a2
, a2
+sizeof(a2
)/sizeof(a2
[0]));
29 c1
.merge(c2
, std::greater
<int>());
30 assert(c1
== std::list
<int>(a3
, a3
+sizeof(a3
)/sizeof(a3
[0])));
34 int a1
[] = {10, 9, 7, 3, 1};
35 std::list
<int> c1(a1
, a1
+sizeof(a1
)/sizeof(a1
[0]));
36 c1
.merge(c1
, std::greater
<int>());
37 assert((c1
== std::list
<int>(a1
, a1
+sizeof(a1
)/sizeof(a1
[0]))));
40 #if TEST_STD_VER >= 11
42 int a1
[] = {10, 9, 7, 3, 1};
43 int a2
[] = {11, 8, 6, 5, 4, 2, 0};
44 int a3
[] = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
45 std::list
<int, min_allocator
<int>> c1(a1
, a1
+sizeof(a1
)/sizeof(a1
[0]));
46 std::list
<int, min_allocator
<int>> c2(a2
, a2
+sizeof(a2
)/sizeof(a2
[0]));
47 c1
.merge(c2
, std::greater
<int>());
48 assert((c1
== std::list
<int, min_allocator
<int>>(a3
, a3
+sizeof(a3
)/sizeof(a3
[0]))));