#ifndef TINYSTL_ITERATOR
#define TINYSTL_ITERATOR

#include <ostream>

namespace std {
  
  template <class T>
  class ostream_iterator
  {
  public:
    ostream_iterator (ostream& os)
      : m_os(os), m_delim (0) {
    }
    
    ostream_iterator (ostream& os, const char* delim)
      : m_os(os), m_delim (delim) {
    }
    
    ostream_iterator& operator*() {
      return *this;
    }
    
    ostream_iterator& operator=(const T& value) {
      m_os << value;
      if (m_delim)
	m_os << m_delim;
      return *this;
    }
    
    ostream_iterator& operator++() { return *this; }
    ostream_iterator& operator++(int) { return *this; }
    
  private:
    ostream& m_os;
    const char* m_delim;
  };
  
}

#endif
