iterators.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
1//===----------------------------------------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10// <forward_list> 11 12// iterator begin(); 13// iterator end(); 14// const_iterator begin() const; 15// const_iterator end() const; 16// const_iterator cbegin() const; 17// const_iterator cend() const; 18 19#include <forward_list> 20#include <cassert> 21#include <iterator> 22 23int main() 24{ 25 { 26 typedef int T; 27 typedef std::forward_list<T> C; 28 C c; 29 C::iterator i = c.begin(); 30 C::iterator j = c.end(); 31 assert(std::distance(i, j) == 0); 32 assert(i == j); 33 } 34 { 35 typedef int T; 36 typedef std::forward_list<T> C; 37 const C c; 38 C::const_iterator i = c.begin(); 39 C::const_iterator j = c.end(); 40 assert(std::distance(i, j) == 0); 41 assert(i == j); 42 } 43 { 44 typedef int T; 45 typedef std::forward_list<T> C; 46 C c; 47 C::const_iterator i = c.cbegin(); 48 C::const_iterator j = c.cend(); 49 assert(std::distance(i, j) == 0); 50 assert(i == j); 51 assert(i == c.end()); 52 } 53 { 54 typedef int T; 55 typedef std::forward_list<T> C; 56 const T t[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; 57 C c(std::begin(t), std::end(t)); 58 C::iterator i = c.begin(); 59 assert(*i == 0); 60 ++i; 61 assert(*i == 1); 62 *i = 10; 63 assert(*i == 10); 64 assert(std::distance(c.begin(), c.end()) == 10); 65 } 66 { 67 typedef int T; 68 typedef std::forward_list<T> C; 69 C::iterator i; 70 } 71} 72