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// vector.bool 12 13// template <class... Args> void emplace_back(Args&&... args); 14 15#include <vector> 16#include <cassert> 17#include "min_allocator.h" 18 19 20int main() 21{ 22#if _LIBCPP_STD_VER > 11 23 { 24 typedef std::vector<bool> C; 25 C c; 26 c.emplace_back(); 27 assert(c.size() == 1); 28 assert(c.front() == false); 29 c.emplace_back(true); 30 assert(c.size() == 2); 31 assert(c.front() == false); 32 assert(c.back() == true); 33 c.emplace_back(1 == 1); 34 assert(c.size() == 3); 35 assert(c.front() == false); 36 assert(c[1] == true); 37 assert(c.back() == true); 38 } 39 { 40 typedef std::vector<bool, min_allocator<bool>> C; 41 C c; 42 43 c.emplace_back(); 44 assert(c.size() == 1); 45 assert(c.front() == false); 46 c.emplace_back(true); 47 assert(c.size() == 2); 48 assert(c.front() == false); 49 assert(c.back() == true); 50 c.emplace_back(1 == 1); 51 assert(c.size() == 3); 52 assert(c.front() == false); 53 assert(c[1] == true); 54 assert(c.back() == true); 55 } 56#endif 57} 58