Essential Tools Module Templates and C++ Standard Library Containers
Most of the Essential Tools Module collection class templates use the C++ Standard Library for their underlying implementation. The collection classes of the C++ Standard Library, called containers, act as an engine under the hood of the Essential Tools Module templates.
For example, the Essential Tools Module’s value-based, double-ended queue
RWTValDeque<T,A> has a member of type
deque<T> from the C++ Standard Library. This member serves as the implementation of the collection. Like an engine, it does the bulk of the work of adding and removing elements, and so on.
RWTValDeque<T,A> is a
wrapper class, like the hood protecting the engine. More than cosmetic, it functions as a simpler, object-oriented interface to the
deque class, making it easier and more pleasant to deal with.
Thanks to inlining and the lack of any extra level of indirection, this wrapping incurs few, if any, performance penalties. If you need direct access to the implementation, the wrapper classes offer the member function std(), which returns a reference to the implementation. In addition, because the Rogue Wave template collections supply standard iterators, you can use them with the C++ Standard Library algorithms as if they were C++ Standard Library collections themselves.