a non-sharing smart pointer class that can be used with STL containers such as std::map, vector, list, set, and deque. The smart pointer has an assignment operator and greater than operator that call the target object s operator.