insert_iter_initializer_list.pass.cpp revision 06086258d3d8c48a916ec51c33e1ad8f46821b81
1//===----------------------------------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// <list>
11
12// iterator insert(const_iterator p, initializer_list<value_type> il);
13
14#include <list>
15#include <cassert>
16
17#include "min_allocator.h"
18
19int main()
20{
21#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
22    {
23    std::list<int> d(10, 1);
24    std::list<int>::iterator i = d.insert(next(d.cbegin(), 2), {3, 4, 5, 6});
25    assert(d.size() == 14);
26    assert(i == next(d.begin(), 2));
27    i = d.begin();
28    assert(*i++ == 1);
29    assert(*i++ == 1);
30    assert(*i++ == 3);
31    assert(*i++ == 4);
32    assert(*i++ == 5);
33    assert(*i++ == 6);
34    assert(*i++ == 1);
35    assert(*i++ == 1);
36    assert(*i++ == 1);
37    assert(*i++ == 1);
38    assert(*i++ == 1);
39    assert(*i++ == 1);
40    assert(*i++ == 1);
41    assert(*i++ == 1);
42    }
43#if __cplusplus >= 201103L
44    {
45    std::list<int, min_allocator<int>> d(10, 1);
46    std::list<int, min_allocator<int>>::iterator i = d.insert(next(d.cbegin(), 2), {3, 4, 5, 6});
47    assert(d.size() == 14);
48    assert(i == next(d.begin(), 2));
49    i = d.begin();
50    assert(*i++ == 1);
51    assert(*i++ == 1);
52    assert(*i++ == 3);
53    assert(*i++ == 4);
54    assert(*i++ == 5);
55    assert(*i++ == 6);
56    assert(*i++ == 1);
57    assert(*i++ == 1);
58    assert(*i++ == 1);
59    assert(*i++ == 1);
60    assert(*i++ == 1);
61    assert(*i++ == 1);
62    assert(*i++ == 1);
63    assert(*i++ == 1);
64    }
65#endif
66#endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
67}
68