179397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez//===----------------------------------------------------------------------===// 279397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// 379397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// The LLVM Compiler Infrastructure 479397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// 579397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// This file is dual licensed under the MIT and the University of Illinois Open 679397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// Source Licenses. See LICENSE.TXT for details. 779397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// 879397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez//===----------------------------------------------------------------------===// 979397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez 1079397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// <set> 1179397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez 1279397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// class set 1379397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez 1479397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// set(const set& m, const allocator_type& a); 1579397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez 1679397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez#include <set> 1779397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez#include <cassert> 1879397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez 1979397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez#include "../../../test_compare.h" 2079397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez#include "test_allocator.h" 2179397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez 2279397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandezint main() 2379397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez{ 2479397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez typedef int V; 2579397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez V ar[] = 2679397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez { 2779397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez 1, 2879397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez 1, 2979397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez 1, 3079397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez 2, 3179397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez 2, 3279397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez 2, 3379397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez 3, 3479397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez 3, 3579397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez 3 3679397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez }; 3779397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez typedef test_compare<std::less<int> > C; 3879397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez typedef test_allocator<V> A; 3979397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez std::set<int, C, A> mo(ar, ar+sizeof(ar)/sizeof(ar[0]), C(5), A(7)); 4079397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez std::set<int, C, A> m(mo, A(3)); 4179397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez assert(m.get_allocator() == A(3)); 4279397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez assert(m.key_comp() == C(5)); 4379397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez assert(m.size() == 3); 4479397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez assert(distance(m.begin(), m.end()) == 3); 4579397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez assert(*m.begin() == 1); 4679397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez assert(*next(m.begin()) == 2); 4779397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez assert(*next(m.begin(), 2) == 3); 4879397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez 4979397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez assert(mo.get_allocator() == A(7)); 5079397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez assert(mo.key_comp() == C(5)); 5179397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez assert(mo.size() == 3); 5279397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez assert(distance(mo.begin(), mo.end()) == 3); 5379397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez assert(*mo.begin() == 1); 5479397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez assert(*next(mo.begin()) == 2); 5579397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez assert(*next(mo.begin(), 2) == 3); 5679397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez} 5779397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez