#include "iter.hpp" class Awesome { public: Awesome( void ) : _n( 42 ) { return; } int get( void ) const { return this->_n; } private: int _n; }; std::ostream & operator<<( std::ostream & o, Awesome const & rhs ) { o << rhs.get(); return o; } template< typename T > void print( T const & x ) { std::cout << x << std::endl; return; } int main(void) { std::cout << "\n---Test0---\n" << std::endl; { int arr1[] = { 1, 2, 3, 4, 5 }; std::cout << "arr1*: " << std::endl; iter(arr1, 5, &print); std::cout << "\narr1*: " << std::endl; iter(arr1, 5, &add); iter(arr1, 5, &print); float arr2[] = { 1.1f, 2.2f, 3.3f, 4.4f, 5.5f}; std::cout << "\narr2: " << std::endl; iter(arr2, 5, &print); std::cout << "\narr2*: " << std::endl; iter(arr2, 5, &add); iter(arr2, 5, &print); char arr3[] = { 'a', 'b', 'c', 'd', 'e' }; std::cout << "\narr3: " << std::endl; iter(arr3, 5, &print); std::cout << "\narr3*: " << std::endl; iter(arr3, 5, &add); iter(arr3, 5, &print); std::string arr4[] = { "one", "two", "three", "four", "five" }; std::cout << "\narr4: " << std::endl; iter(arr4, 5, &print); } std::cout << "\n\n---Test1---\n" << std::endl; { int tab[] = { 0, 1, 2, 3, 4 }; Awesome tab2[5]; iter( tab, 5, print ); iter( tab2, 5, print ); } std::cout << "\n\n---EndTest---\n" << std::endl; return 0; }