#define TM_DEBUG(x)
Debugging macro used to disable debugging output.
#define ABSTRACT_TEMPLATE_CODE(PTR, TT, T)
Macro to define a templated abstract pointer type with code.
An abstract base class for iterator implementation.
virtual T next()=0
Returns the current element of the iterator, and move the iterator forward.
virtual void increase()=0
Increase the iterator.
virtual bool busy()=0
Returns whether the iterator has another element.
virtual int remains()
Returns the number of elements remaining in the iterator.
virtual T current()=0
Returns the current element of the iterator.
The list class represents a linked list.
list(T item)
Construct a new list object with a single item.
tm_ostream & operator<<(tm_ostream &out, iterator< T > it)
Outputs the iterator object to an output stream.
iterator< T > iterate(hashmap< T, U > h)
Generates an iterator for a container of type hashmap<T, U>.
Structure representing an abstract object with a reference count.
A template class for iterators.
T operator*()
Returns the current element of the iterator, then move the iterator to the next element.
ABSTRACT_TEMPLATE(iterator, T)
bool operator!=(std::nullptr_t)