14684ddb6SLionel Sambuc //===----------------------------------------------------------------------===// 24684ddb6SLionel Sambuc // 34684ddb6SLionel Sambuc // The LLVM Compiler Infrastructure 44684ddb6SLionel Sambuc // 54684ddb6SLionel Sambuc // This file is dual licensed under the MIT and the University of Illinois Open 64684ddb6SLionel Sambuc // Source Licenses. See LICENSE.TXT for details. 74684ddb6SLionel Sambuc // 84684ddb6SLionel Sambuc //===----------------------------------------------------------------------===// 94684ddb6SLionel Sambuc 104684ddb6SLionel Sambuc // <string> 114684ddb6SLionel Sambuc 124684ddb6SLionel Sambuc // explicit basic_string(const Allocator& a = Allocator()); 134684ddb6SLionel Sambuc 144684ddb6SLionel Sambuc #include <string> 154684ddb6SLionel Sambuc #include <cassert> 164684ddb6SLionel Sambuc 17*0a6a1f1dSLionel Sambuc #include "test_allocator.h" 18*0a6a1f1dSLionel Sambuc #include "min_allocator.h" 194684ddb6SLionel Sambuc 204684ddb6SLionel Sambuc template <class S> 214684ddb6SLionel Sambuc void test()224684ddb6SLionel Sambuctest() 234684ddb6SLionel Sambuc { 244684ddb6SLionel Sambuc { 254684ddb6SLionel Sambuc S s; 264684ddb6SLionel Sambuc assert(s.__invariants()); 274684ddb6SLionel Sambuc assert(s.data()); 284684ddb6SLionel Sambuc assert(s.size() == 0); 294684ddb6SLionel Sambuc assert(s.capacity() >= s.size()); 304684ddb6SLionel Sambuc assert(s.get_allocator() == typename S::allocator_type()); 314684ddb6SLionel Sambuc } 324684ddb6SLionel Sambuc { 334684ddb6SLionel Sambuc S s(typename S::allocator_type(5)); 344684ddb6SLionel Sambuc assert(s.__invariants()); 354684ddb6SLionel Sambuc assert(s.data()); 364684ddb6SLionel Sambuc assert(s.size() == 0); 374684ddb6SLionel Sambuc assert(s.capacity() >= s.size()); 384684ddb6SLionel Sambuc assert(s.get_allocator() == typename S::allocator_type(5)); 394684ddb6SLionel Sambuc } 404684ddb6SLionel Sambuc } 414684ddb6SLionel Sambuc 424684ddb6SLionel Sambuc #if __cplusplus >= 201103L 434684ddb6SLionel Sambuc 444684ddb6SLionel Sambuc template <class S> 454684ddb6SLionel Sambuc void test2()464684ddb6SLionel Sambuctest2() 474684ddb6SLionel Sambuc { 484684ddb6SLionel Sambuc { 494684ddb6SLionel Sambuc S s; 504684ddb6SLionel Sambuc assert(s.__invariants()); 514684ddb6SLionel Sambuc assert(s.data()); 524684ddb6SLionel Sambuc assert(s.size() == 0); 534684ddb6SLionel Sambuc assert(s.capacity() >= s.size()); 544684ddb6SLionel Sambuc assert(s.get_allocator() == typename S::allocator_type()); 554684ddb6SLionel Sambuc } 564684ddb6SLionel Sambuc { 574684ddb6SLionel Sambuc S s(typename S::allocator_type{}); 584684ddb6SLionel Sambuc assert(s.__invariants()); 594684ddb6SLionel Sambuc assert(s.data()); 604684ddb6SLionel Sambuc assert(s.size() == 0); 614684ddb6SLionel Sambuc assert(s.capacity() >= s.size()); 624684ddb6SLionel Sambuc assert(s.get_allocator() == typename S::allocator_type()); 634684ddb6SLionel Sambuc } 644684ddb6SLionel Sambuc } 654684ddb6SLionel Sambuc 664684ddb6SLionel Sambuc #endif 674684ddb6SLionel Sambuc main()684684ddb6SLionel Sambucint main() 694684ddb6SLionel Sambuc { 704684ddb6SLionel Sambuc test<std::basic_string<char, std::char_traits<char>, test_allocator<char> > >(); 714684ddb6SLionel Sambuc #if __cplusplus >= 201103L 724684ddb6SLionel Sambuc test2<std::basic_string<char, std::char_traits<char>, min_allocator<char> > >(); 734684ddb6SLionel Sambuc #endif 744684ddb6SLionel Sambuc } 75