Revision 1 (by moose, 2006/03/06 10:00:33) Initial Import
template <typename T, typename U>
class mc_iterator : public std::iterator<std::input_iterator_tag, T> {
	friend class mc_iterator<T, U>;
		
	public:
		mc_iterator() { }
		mc_iterator(T &r) result(r) : { } 

		const T &operator*() { return ob; }
			
		// The copy constructor
		mc_iterator(const iterator& it) { ob = it.ob; }
		//		mc_iterator &operator=(const mc_iterator&);
		// Returns the next object in the stream.
		const T &operator*() const { }
		mc_iterator &operator++(); // Preincrement.
		mc_iterator &operator++(int); //Postincrement.		
		input_iterator_tag iterator_category(const mc_iterator&); // iterator tags Returns the iterator's category.
		T* value_type(const mc_iterator&); // iterator tags Returns the iterator's value type.
		Distance* distance_type(const mc_iterator&); // iterator tags Returns the iterator's distance type.
	private:
		T &ob;
};

template <typename T>
bool operator==(const iterator<T>&, const iterator<T>&); // The equality operator. This is a global function, not a member function.