00001 00002 #ifndef _INSTIGATE_OPEN_SOURCE_INTERNAL_HEADER_IN_CONCEPT 00003 #error This is an internal header file used to implement Instigate STL.\ 00004 It should never be included directly by a program. 00005 #endif 00006 00007 #ifndef INSTIGATE_STL_FORWARD_ITERATOR_HPP 00008 #define INSTIGATE_STL_FORWARD_ITERATOR_HPP 00009 00059 // Headers from this project 00060 #include "_single_pass_iterator.hpp" 00061 00062 // Headers from other projects 00063 #include <generic/_default_constructible.hpp> 00064 00065 // Headers from standard library 00066 00067 // Forward declarations 00068 namespace instigate { 00069 namespace stl { 00084 namespace forward_iterator { 00085 struct tag; 00086 template<typename T> struct interface; 00087 template<typename T> struct requirements; 00088 } 00089 } 00090 } 00091 00098 struct instigate::stl::forward_iterator::tag 00099 : instigate::stl::single_pass_iterator::tag 00100 , instigate::generic::default_constructible::tag 00101 { 00102 }; 00103 00108 template <typename T> 00109 struct instigate::stl::forward_iterator::interface 00110 : instigate::stl::single_pass_iterator::interface<T> 00111 , instigate::generic::default_constructible::interface<T> 00112 { 00113 }; 00114 00122 template <typename T> 00123 struct instigate::stl::forward_iterator::requirements 00124 : instigate::stl::single_pass_iterator::requirements<T> 00125 , instigate::generic::default_constructible::requirements<T> 00126 { 00127 }; 00128 00129 // vim:et:tabstop=8:shiftwidth=8:cindent:fo=croq:textwidth=80: 00130 00131 #endif