// comparison logic
bool operator == (const Iterator& ) const; // equality operator
bool operator != (const Iterator& ) const; // non-equality operator
// element access
value_type& operator* (); // dereference operator
const value_type& operator* () const; // const version
// motion
Iterator& operator ++ (); // prefix increment
Iterator operator ++ (int); // postfix increment
// proper type
Iterator () // constructor
~Iterator () // destructor
Iterator (const Iterator& ); // copy constructor
Iterator& operator = (const Iterator& ); // assignment