set_difference.pass.cpp revision b64f8b07c104c6cc986570ac8ee0ed16a9f23976
1bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===----------------------------------------------------------------------===// 2bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 3f5256e16dfc425c1d466f6308d4026d529ce9e0bHoward Hinnant// The LLVM Compiler Infrastructure 4bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open 6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// Source Licenses. See LICENSE.TXT for details. 7bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 8bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===----------------------------------------------------------------------===// 9bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 10bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// <algorithm> 11bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 12eb564e76cc3904d811c981a50ecce0659f444cc9Howard Hinnant// template<InputIterator InIter1, InputIterator InIter2, typename OutIter> 13eb564e76cc3904d811c981a50ecce0659f444cc9Howard Hinnant// requires OutputIterator<OutIter, InIter1::reference> 14eb564e76cc3904d811c981a50ecce0659f444cc9Howard Hinnant// && OutputIterator<OutIter, InIter2::reference> 15eb564e76cc3904d811c981a50ecce0659f444cc9Howard Hinnant// && HasLess<InIter2::value_type, InIter1::value_type> 16eb564e76cc3904d811c981a50ecce0659f444cc9Howard Hinnant// && HasLess<InIter1::value_type, InIter2::value_type> 17bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// OutIter 18bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// set_difference(InIter1 first1, InIter1 last1, InIter2 first2, InIter2 last2, 19bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// OutIter result); 20bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 21bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <algorithm> 22bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <cassert> 23bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 24bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include "../../../iterators.h" 25bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 26bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnanttemplate <class Iter1, class Iter2, class OutIter> 27bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantvoid 28bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnanttest() 29bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant{ 30bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant int ia[] = {1, 2, 2, 3, 3, 3, 4, 4, 4, 4}; 31bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const int sa = sizeof(ia)/sizeof(ia[0]); 32bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant int ib[] = {2, 4, 4, 6}; 33bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const int sb = sizeof(ib)/sizeof(ib[0]); 34bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant int ic[20]; 35bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant int ir[] = {1, 2, 3, 3, 3, 4, 4}; 36bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const int sr = sizeof(ir)/sizeof(ir[0]); 37bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant OutIter ce = std::set_difference(Iter1(ia), Iter1(ia+sa), 38bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant Iter2(ib), Iter2(ib+sb), OutIter(ic)); 39bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(base(ce) - ic == sr); 40bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::lexicographical_compare(ic, base(ce), ir, ir+sr) == 0); 41bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant int irr[] = {6}; 42bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const int srr = sizeof(irr)/sizeof(irr[0]); 43bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ce = std::set_difference(Iter1(ib), Iter1(ib+sb), 44bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant Iter2(ia), Iter2(ia+sa), OutIter(ic)); 45bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(base(ce) - ic == srr); 46bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::lexicographical_compare(ic, base(ce), irr, irr+srr) == 0); 47bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant} 48bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 49bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantint main() 50bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant{ 51bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, input_iterator<const int*>, output_iterator<int*> >(); 52bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, input_iterator<const int*>, forward_iterator<int*> >(); 53bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, input_iterator<const int*>, bidirectional_iterator<int*> >(); 54bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, input_iterator<const int*>, random_access_iterator<int*> >(); 55bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, input_iterator<const int*>, int*>(); 56bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 57bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, forward_iterator<const int*>, output_iterator<int*> >(); 58bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, forward_iterator<const int*>, forward_iterator<int*> >(); 59bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, forward_iterator<const int*>, bidirectional_iterator<int*> >(); 60bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, forward_iterator<const int*>, random_access_iterator<int*> >(); 61bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, forward_iterator<const int*>, int*>(); 62bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 63bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, bidirectional_iterator<const int*>, output_iterator<int*> >(); 64bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, bidirectional_iterator<const int*>, forward_iterator<int*> >(); 65bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, bidirectional_iterator<const int*>, bidirectional_iterator<int*> >(); 66bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, bidirectional_iterator<const int*>, random_access_iterator<int*> >(); 67bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, bidirectional_iterator<const int*>, int*>(); 68bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 69bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, random_access_iterator<const int*>, output_iterator<int*> >(); 70bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, random_access_iterator<const int*>, forward_iterator<int*> >(); 71bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, random_access_iterator<const int*>, bidirectional_iterator<int*> >(); 72bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, random_access_iterator<const int*>, random_access_iterator<int*> >(); 73bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, random_access_iterator<const int*>, int*>(); 74bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 75bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, const int*, output_iterator<int*> >(); 76bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, const int*, forward_iterator<int*> >(); 77bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, const int*, bidirectional_iterator<int*> >(); 78bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, const int*, random_access_iterator<int*> >(); 79bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<input_iterator<const int*>, const int*, int*>(); 80bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 81bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, input_iterator<const int*>, output_iterator<int*> >(); 82bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, input_iterator<const int*>, forward_iterator<int*> >(); 83bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, input_iterator<const int*>, bidirectional_iterator<int*> >(); 84bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, input_iterator<const int*>, random_access_iterator<int*> >(); 85bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, input_iterator<const int*>, int*>(); 86bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 87bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, forward_iterator<const int*>, output_iterator<int*> >(); 88bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, forward_iterator<const int*>, forward_iterator<int*> >(); 89bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, forward_iterator<const int*>, bidirectional_iterator<int*> >(); 90bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, forward_iterator<const int*>, random_access_iterator<int*> >(); 91bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, forward_iterator<const int*>, int*>(); 92bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 93bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, bidirectional_iterator<const int*>, output_iterator<int*> >(); 94bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, bidirectional_iterator<const int*>, forward_iterator<int*> >(); 95bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, bidirectional_iterator<const int*>, bidirectional_iterator<int*> >(); 96bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, bidirectional_iterator<const int*>, random_access_iterator<int*> >(); 97bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, bidirectional_iterator<const int*>, int*>(); 98bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 99bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, random_access_iterator<const int*>, output_iterator<int*> >(); 100bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, random_access_iterator<const int*>, forward_iterator<int*> >(); 101bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, random_access_iterator<const int*>, bidirectional_iterator<int*> >(); 102bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, random_access_iterator<const int*>, random_access_iterator<int*> >(); 103bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, random_access_iterator<const int*>, int*>(); 104bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 105bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, const int*, output_iterator<int*> >(); 106bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, const int*, forward_iterator<int*> >(); 107bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, const int*, bidirectional_iterator<int*> >(); 108bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, const int*, random_access_iterator<int*> >(); 109bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<forward_iterator<const int*>, const int*, int*>(); 110bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 111bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, input_iterator<const int*>, output_iterator<int*> >(); 112bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, input_iterator<const int*>, bidirectional_iterator<int*> >(); 113bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, input_iterator<const int*>, bidirectional_iterator<int*> >(); 114bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, input_iterator<const int*>, random_access_iterator<int*> >(); 115bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, input_iterator<const int*>, int*>(); 116bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 117bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, forward_iterator<const int*>, output_iterator<int*> >(); 118bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, forward_iterator<const int*>, forward_iterator<int*> >(); 119bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, forward_iterator<const int*>, bidirectional_iterator<int*> >(); 120bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, forward_iterator<const int*>, random_access_iterator<int*> >(); 121bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, forward_iterator<const int*>, int*>(); 122bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 123bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, bidirectional_iterator<const int*>, output_iterator<int*> >(); 124bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, bidirectional_iterator<const int*>, forward_iterator<int*> >(); 125bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, bidirectional_iterator<const int*>, bidirectional_iterator<int*> >(); 126bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, bidirectional_iterator<const int*>, random_access_iterator<int*> >(); 127bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, bidirectional_iterator<const int*>, int*>(); 128bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 129bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, random_access_iterator<const int*>, output_iterator<int*> >(); 130bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, random_access_iterator<const int*>, forward_iterator<int*> >(); 131bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, random_access_iterator<const int*>, bidirectional_iterator<int*> >(); 132bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, random_access_iterator<const int*>, random_access_iterator<int*> >(); 133bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, random_access_iterator<const int*>, int*>(); 134bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 135bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, const int*, output_iterator<int*> >(); 136bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, const int*, forward_iterator<int*> >(); 137bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, const int*, bidirectional_iterator<int*> >(); 138bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, const int*, random_access_iterator<int*> >(); 139bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<bidirectional_iterator<const int*>, const int*, int*>(); 140bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 141bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, input_iterator<const int*>, output_iterator<int*> >(); 142bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, input_iterator<const int*>, bidirectional_iterator<int*> >(); 143bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, input_iterator<const int*>, bidirectional_iterator<int*> >(); 144bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, input_iterator<const int*>, random_access_iterator<int*> >(); 145bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, input_iterator<const int*>, int*>(); 146bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 147bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, forward_iterator<const int*>, output_iterator<int*> >(); 148bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, forward_iterator<const int*>, forward_iterator<int*> >(); 149bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, forward_iterator<const int*>, bidirectional_iterator<int*> >(); 150bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, forward_iterator<const int*>, random_access_iterator<int*> >(); 151bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, forward_iterator<const int*>, int*>(); 152bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 153bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, bidirectional_iterator<const int*>, output_iterator<int*> >(); 154bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, bidirectional_iterator<const int*>, forward_iterator<int*> >(); 155bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, bidirectional_iterator<const int*>, bidirectional_iterator<int*> >(); 156bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, bidirectional_iterator<const int*>, random_access_iterator<int*> >(); 157bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, bidirectional_iterator<const int*>, int*>(); 158bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 159bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, random_access_iterator<const int*>, output_iterator<int*> >(); 160bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, random_access_iterator<const int*>, forward_iterator<int*> >(); 161bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, random_access_iterator<const int*>, bidirectional_iterator<int*> >(); 162bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, random_access_iterator<const int*>, random_access_iterator<int*> >(); 163bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, random_access_iterator<const int*>, int*>(); 164bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 165bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, const int*, output_iterator<int*> >(); 166bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, const int*, forward_iterator<int*> >(); 167bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, const int*, bidirectional_iterator<int*> >(); 168bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, const int*, random_access_iterator<int*> >(); 169bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<random_access_iterator<const int*>, const int*, int*>(); 170bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 171bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, input_iterator<const int*>, output_iterator<int*> >(); 172bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, input_iterator<const int*>, bidirectional_iterator<int*> >(); 173bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, input_iterator<const int*>, bidirectional_iterator<int*> >(); 174bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, input_iterator<const int*>, random_access_iterator<int*> >(); 175bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, input_iterator<const int*>, int*>(); 176bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 177bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, forward_iterator<const int*>, output_iterator<int*> >(); 178bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, forward_iterator<const int*>, forward_iterator<int*> >(); 179bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, forward_iterator<const int*>, bidirectional_iterator<int*> >(); 180bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, forward_iterator<const int*>, random_access_iterator<int*> >(); 181bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, forward_iterator<const int*>, int*>(); 182bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 183bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, bidirectional_iterator<const int*>, output_iterator<int*> >(); 184bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, bidirectional_iterator<const int*>, forward_iterator<int*> >(); 185bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, bidirectional_iterator<const int*>, bidirectional_iterator<int*> >(); 186bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, bidirectional_iterator<const int*>, random_access_iterator<int*> >(); 187bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, bidirectional_iterator<const int*>, int*>(); 188bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 189bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, random_access_iterator<const int*>, output_iterator<int*> >(); 190bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, random_access_iterator<const int*>, forward_iterator<int*> >(); 191bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, random_access_iterator<const int*>, bidirectional_iterator<int*> >(); 192bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, random_access_iterator<const int*>, random_access_iterator<int*> >(); 193bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, random_access_iterator<const int*>, int*>(); 194bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 195bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, const int*, output_iterator<int*> >(); 196bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, const int*, forward_iterator<int*> >(); 197bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, const int*, bidirectional_iterator<int*> >(); 198bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, const int*, random_access_iterator<int*> >(); 199bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant test<const int*, const int*, int*>(); 200bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant} 201