1//===----------------------------------------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is dual licensed under the MIT and the University of Illinois Open 6// Source Licenses. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10// <algorithm> 11 12// template <class InputIterator, class Predicate> 13// bool 14// none_of(InputIterator first, InputIterator last, Predicate pred); 15 16#include <algorithm> 17#include <cassert> 18 19#include "test_iterators.h" 20 21struct test1 22{ 23 bool operator()(const int& i) const 24 { 25 return i % 2 == 0; 26 } 27}; 28 29int main() 30{ 31 { 32 int ia[] = {2, 4, 6, 8}; 33 const unsigned sa = sizeof(ia)/sizeof(ia[0]); 34 assert(std::none_of(input_iterator<const int*>(ia), 35 input_iterator<const int*>(ia + sa), test1()) == false); 36 assert(std::none_of(input_iterator<const int*>(ia), 37 input_iterator<const int*>(ia), test1()) == true); 38 } 39 { 40 const int ia[] = {2, 4, 5, 8}; 41 const unsigned sa = sizeof(ia)/sizeof(ia[0]); 42 assert(std::none_of(input_iterator<const int*>(ia), 43 input_iterator<const int*>(ia + sa), test1()) == false); 44 assert(std::none_of(input_iterator<const int*>(ia), 45 input_iterator<const int*>(ia), test1()) == true); 46 } 47 { 48 const int ia[] = {1, 3, 5, 7}; 49 const unsigned sa = sizeof(ia)/sizeof(ia[0]); 50 assert(std::none_of(input_iterator<const int*>(ia), 51 input_iterator<const int*>(ia + sa), test1()) == true); 52 assert(std::none_of(input_iterator<const int*>(ia), 53 input_iterator<const int*>(ia), test1()) == true); 54 } 55} 56