The CPlusPlus Standard Library: A Tutorial and Reference