Paul Pedriana Electronic Arts ppedriana at Gaming platforms and game designs place requirements on game software which differ from requirements of other platforms.
This document describes an STL implementation (EASTL) developed within Electronic Arts as an alternative to and extension of the STL defined by the C++ standard library.
By STL, we mean the container, iterator, and algorithm components of the C++ standard library, hereafter referred to as std STL (with referring to the std namespace, whereas the S in STL refers to standard C++).
By C++ standard, we mean ISO 14882 (1998) and the 2003 update.
This paper describes game software development issues, perceived weaknesses of the current C++ standard, and the design of EASTL as a partial solution for these weaknesses.
The purpose of this document is to explain the motivation and design of EASTL so that it may help the C++ community better understand the needs of game software development.
This document is not a proposal, though some of EASTL's changes and extensions could form the basis for such discussions.
The large majority of EASTL would be useful to any kind of C++ software development.
The C++ standard library's containers, iterators, and algorithms are potentially useful for a variety of game programming needs.
However, weaknesses and omissions of the standard library prevent it from being ideal for high performance game software.
Foremost among these weaknesses is the allocator model.
An extended and partially redesigned replacement (EASTL) for the C++ standard library was implemented at Electronic Arts in order to resolve these weaknesses in a portable and consistent way.