1 //===----------------------------------------------------------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // UNSUPPORTED: c++98, c++03, c++11
14 // template <class... Args> reference emplace_back(Args&&... args);
18 #include "min_allocator.h"
23 typedef std::vector<bool> C;
24 typedef C::reference Ref;
26 Ref r1 = c.emplace_back();
27 assert(c.size() == 1);
28 assert(c.front() == false);
30 assert(c.front() == true);
32 Ref r2 = c.emplace_back(true);
33 assert(c.size() == 2);
34 assert(c.front() == false);
35 assert(c.back() == true);
37 assert(c.back() == false);
39 Ref r3 = c.emplace_back(1 == 1);
40 assert(c.size() == 3);
41 assert(c.front() == false);
43 assert(c.back() == true);
45 assert(c.back() == false);
48 typedef std::vector<bool, min_allocator<bool>> C;
49 typedef C::reference Ref;
52 Ref r1 = c.emplace_back();
53 assert(c.size() == 1);
54 assert(c.front() == false);
56 assert(c.front() == true);
58 Ref r2 = c.emplace_back(true);
59 assert(c.size() == 2);
60 assert(c.front() == false);
61 assert(c.back() == true);
63 assert(c.back() == false);
65 c.emplace_back(1 == 1);
66 assert(c.size() == 3);
67 assert(c.front() == false);
69 assert(c.back() == true);