Encapsulators: a new software paradigm in Smalltalk-80
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
A laboratory for teaching object oriented thinking
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Introduction to algorithms
There's no place like home: continuing design in use
Design at work
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Adaptability: user-initiated individualization
Adaptive user support
Three levels of end-user tailoring: customization, integration, and extension
Computers and design in context
LEDA: a platform for combinatorial and geometric computing
LEDA: a platform for combinatorial and geometric computing
Defining iterators and const iterators
C/C++ Users Journal
Modern C++ design: generic programming and design patterns applied
Modern C++ design: generic programming and design patterns applied
The boost graph library: user guide and reference manual
The boost graph library: user guide and reference manual
C++ Standard Template Library
C++ Templates
Concepts: linguistic support for generic programming in C++
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Programming: Principles and Practice Using C++
Programming: Principles and Practice Using C++
Succinct dynamic dictionaries and trees
ICALP'03 Proceedings of the 30th international conference on Automata, languages and programming
Hi-index | 0.00 |
The CPH STL is a special edition of the STL, the containers and algorithms part of the C++ standard library. The specification of the generic components of the STL is given in the C++ standard. Any implementation of the STL, e.g. the one that ships with your standard-compliant C++ compiler, should provide at least one realization for each container that has the specified characteristics with respect to performance and safety. In the CPH STL project, our goal is to provide several alternative realizations for each STL container. For example, for associative containers we can provide almost any kind of balanced search tree. Also, we do provide safe and compact versions of each container. To ease the maintenance of this large collection of implementations, we have developed component frameworks for the STL containers. In this paper, we describe the design and implementation of a component framework for vector, which is undoubtedly the most used container of the C++ standard library. In particular, we specify the details of a vector implementation that is safe with respect to referential integrity and strong exception safety. Additionally, we report the experiences and lessons learnt from the development of component frameworks which we hope to be of benefit to persons engaged in the design and implementation of generic software libraries.