Just a note:

As an index for the std::map, the class needs a bool T::operator<(T t) const