1ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant//===----------------------------------------------------------------------===// 2ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant// 3ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant// The LLVM Compiler Infrastructure 4ebef7459b2128e379999c3cd7f353376b5ed64bbHoward 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. 7ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant// 8ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant//===----------------------------------------------------------------------===// 9ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant 10ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant// <numeric> 11ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant 12ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant// template <class ForwardIterator, class T> 13ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant// void iota(ForwardIterator first, ForwardIterator last, T value); 14ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant 15ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant#include <numeric> 16ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant#include <cassert> 17ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant 1883e2c4d877fe2d7793868b1c6a5d9525a7c4d431Marshall Clow#include "test_iterators.h" 19ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant 20ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnanttemplate <class InIter> 21ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnantvoid 22ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnanttest() 23ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant{ 24ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant int ia[] = {1, 2, 3, 4, 5}; 25ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant int ir[] = {5, 6, 7, 8, 9}; 26ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant const unsigned s = sizeof(ia) / sizeof(ia[0]); 27ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant std::iota(InIter(ia), InIter(ia+s), 5); 28ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant for (unsigned i = 0; i < s; ++i) 29ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant assert(ia[i] == ir[i]); 30ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant} 31ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant 32ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnantint main() 33ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant{ 34ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant test<forward_iterator<int*> >(); 35ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant test<bidirectional_iterator<int*> >(); 36ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant test<random_access_iterator<int*> >(); 37ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant test<int*>(); 38ebef7459b2128e379999c3cd7f353376b5ed64bbHoward Hinnant} 39