193a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein//===----------------------------------------------------------------------===// 293a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein// 393a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein// The LLVM Compiler Infrastructure 493a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein// 593a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein// This file is dual licensed under the MIT and the University of Illinois Open 693a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein// Source Licenses. See LICENSE.TXT for details. 793a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein// 893a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein//===----------------------------------------------------------------------===// 993a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein 1093a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein// <algorithm> 1193a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein 1293a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein// template<InputIterator Iter1, ForwardIterator Iter2> 1393a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein// requires HasEqualTo<Iter1::value_type, Iter2::value_type> 1493a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein// Iter1 1593a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein// find_first_of(Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2); 1693a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein 1793a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein#include <algorithm> 1893a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein#include <cassert> 1993a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein 2093a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein#include "test_iterators.h" 2193a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein 2293a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzsteinint main() 2393a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein{ 2493a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein int ia[] = {0, 1, 2, 3, 0, 1, 2, 3}; 2593a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein const unsigned sa = sizeof(ia)/sizeof(ia[0]); 2693a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein int ib[] = {1, 3, 5, 7}; 2793a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein const unsigned sb = sizeof(ib)/sizeof(ib[0]); 2893a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein assert(std::find_first_of(input_iterator<const int*>(ia), 2993a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein input_iterator<const int*>(ia + sa), 3093a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein forward_iterator<const int*>(ib), 3193a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein forward_iterator<const int*>(ib + sb)) == 3293a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein input_iterator<const int*>(ia+1)); 3393a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein int ic[] = {7}; 3493a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein assert(std::find_first_of(input_iterator<const int*>(ia), 3593a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein input_iterator<const int*>(ia + sa), 3693a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein forward_iterator<const int*>(ic), 3793a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein forward_iterator<const int*>(ic + 1)) == 3893a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein input_iterator<const int*>(ia+sa)); 3993a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein assert(std::find_first_of(input_iterator<const int*>(ia), 4093a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein input_iterator<const int*>(ia + sa), 4193a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein forward_iterator<const int*>(ic), 4293a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein forward_iterator<const int*>(ic)) == 4393a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein input_iterator<const int*>(ia+sa)); 4493a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein assert(std::find_first_of(input_iterator<const int*>(ia), 4593a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein input_iterator<const int*>(ia), 4693a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein forward_iterator<const int*>(ic), 4793a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein forward_iterator<const int*>(ic+1)) == 4893a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein input_iterator<const int*>(ia)); 4993a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein} 5093a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein