1198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow//===----------------------------------------------------------------------===// 2198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow// 3198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow// The LLVM Compiler Infrastructure 4198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow// 5198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow// This file is dual licensed under the MIT and the University of Illinois Open 6198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow// Source Licenses. See LICENSE.TXT for details. 7198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow// 8198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow//===----------------------------------------------------------------------===// 9198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow 10198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow// <vector> 11198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow// vector.bool 12198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow 13198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow// template <class... Args> void emplace_back(Args&&... args); 14198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow 15198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow#include <vector> 16198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow#include <cassert> 17061d0cc4db18d17bf01ed14c5db0be098205bd47Marshall Clow#include "min_allocator.h" 18198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow 19198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow 20198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clowint main() 21198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow{ 22198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow#if _LIBCPP_STD_VER > 11 23198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow { 24198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow typedef std::vector<bool> C; 25198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow C c; 26198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow c.emplace_back(); 27198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c.size() == 1); 28198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c.front() == false); 29198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow c.emplace_back(true); 30198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c.size() == 2); 31198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c.front() == false); 32198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c.back() == true); 33198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow c.emplace_back(1 == 1); 34198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c.size() == 3); 35198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c.front() == false); 36198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c[1] == true); 37198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c.back() == true); 38198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow } 39198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow { 40198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow typedef std::vector<bool, min_allocator<bool>> C; 41198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow C c; 42198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow 43198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow c.emplace_back(); 44198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c.size() == 1); 45198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c.front() == false); 46198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow c.emplace_back(true); 47198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c.size() == 2); 48198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c.front() == false); 49198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c.back() == true); 50198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow c.emplace_back(1 == 1); 51198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c.size() == 3); 52198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c.front() == false); 53198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c[1] == true); 54198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow assert(c.back() == true); 55198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow } 56198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow#endif 57198a2a59ee8e99365c8d4ef6d5346e6743f58cb1Marshall Clow} 58