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// <vector>
11
12// vector& operator=(const vector& c);
13
14#include <vector>
15#include <cassert>
16#include "test_allocator.h"
17#include "min_allocator.h"
18
19int main()
20{
21    {
22        std::vector<bool, test_allocator<bool> > l(3, 2, test_allocator<bool>(5));
23        std::vector<bool, test_allocator<bool> > l2(l, test_allocator<bool>(3));
24        l2 = l;
25        assert(l2 == l);
26        assert(l2.get_allocator() == test_allocator<bool>(3));
27    }
28    {
29        std::vector<bool, other_allocator<bool> > l(3, 2, other_allocator<bool>(5));
30        std::vector<bool, other_allocator<bool> > l2(l, other_allocator<bool>(3));
31        l2 = l;
32        assert(l2 == l);
33        assert(l2.get_allocator() == other_allocator<bool>(5));
34    }
35#if __cplusplus >= 201103L
36    {
37        std::vector<bool, min_allocator<bool> > l(3, 2, min_allocator<bool>());
38        std::vector<bool, min_allocator<bool> > l2(l, min_allocator<bool>());
39        l2 = l;
40        assert(l2 == l);
41        assert(l2.get_allocator() == min_allocator<bool>());
42    }
43#endif
44}
45