// (C) Copyright Jeremy Siek 2000-2004. // Permission to copy, use, modify, sell and distribute this software // is granted provided this copyright notice appears in all // copies. This software is provided "as is" without express or // implied warranty, and with no claim as to its suitability for any // purpose. #include #include #include #include #include int main(int, char*[]) { char letters_[] = "hello world!"; const int N = sizeof(letters_)/sizeof(char) - 1; typedef char* base_iterator; base_iterator letters(letters_); std::cout << "original sequence of letters:\t\t\t" << letters_ << std::endl; // Use reverse_iterator to print a sequence of letters in reverse // order. boost::reverse_iterator reverse_letters_first(letters + N), reverse_letters_last(letters); std::cout << "sequence in reverse order:\t\t\t"; std::copy(reverse_letters_first, reverse_letters_last, std::ostream_iterator(std::cout)); std::cout << std::endl; std::cout << "sequence in double-reversed (normal) order:\t"; std::copy(boost::make_reverse_iterator(reverse_letters_last), boost::make_reverse_iterator(reverse_letters_first), std::ostream_iterator(std::cout)); std::cout << std::endl; return boost::exit_success; }