C++ Standard Template Library by template specialized containers

The C++ Standard Template Library is the agship exam- ple for libraries based on the generic programming paradigm. The usage of this library is intended to minimize the number of classical C/C++ errors, but does not warrant bug-free programs. Furthermore, many new kinds of errors may arise from the inaccurate use of the generic program- ming paradigm, like dereferencing invalid iterators or misunderstanding remove-like algorithms. In this paper we present some typical scenarios that may cause run- time or portability problems. We emit warnings and errors while these risky constructs are used. We also present a general approach to emit \customized" warnings. We support the so-called \believe-me marks" to disable warnings. We present another typical usage of our technique, when classes become deprecated during the software lifecycle.

[1]  Mads Torgersen The expression problem revisited: Four new solutions using generics , 2004 .

[2]  Tamás Kozsik Tutorial on Subtype Marks , 2005, CEFP.

[3]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[4]  Alexander A. Stepanov,et al.  Generic Programming , 1988, ISSAC.

[5]  Bjarne Stroustrup,et al.  The C++ Programming Language: Special Edition , 2000 .

[6]  Andrei Alexandrescu,et al.  Modern C++ design: generic programming and design patterns applied , 2001 .

[7]  Yann-Gaël Guéhéneuc,et al.  Inconsistencies of Metrics in C + + Standard Template Library ? , 2007 .

[8]  Csaba Szabó,et al.  Teaching Java programming using case studies , 2008 .

[9]  Norbert Pataki,et al.  Measuring the Overhead of C++ Standard Template Library Safe Variants , 2011, Electron. Notes Theor. Comput. Sci..

[10]  Matthew H. Austern Generic programming and the STL - using and extending the C++ standard template library , 1999, Addison-Wesley professional computing series.

[11]  Zoltán Porkoláb,et al.  Towards the Modularization of C++ Concept Maps , 2009, Electron. Notes Theor. Comput. Sci..

[12]  Norbert Pataki ADVANCED FUNCTOR FRAMEWORK FOR C++ STANDARD TEMPLATE LIBRARY , 2011 .

[13]  Zoltán Porkoláb,et al.  Towards a General Template Introspection Library , 2004, GPCE.

[14]  Sibylle Schupp,et al.  STLlint: lifting static checking from languages to libraries , 2006, Softw. Pract. Exp..

[15]  Bjarne Stroustrup,et al.  Concepts: linguistic support for generic programming in C++ , 2006, OOPSLA '06.

[16]  Scott Meyers,et al.  Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library , 2001 .

[17]  Thomas Becker STL & generic programming: writing your own iterators , 2001 .

[18]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[19]  Norbert Pataki C + + Standard Template Library by Ranges * , 2011 .

[20]  Leor Zolman An STL message decryptor for visual C , 2001 .

[21]  Alexander A. Stepanov,et al.  Range partition adaptors: a mechanism for parallelizing STL , 1996, SIAP.

[22]  Bjarne Stroustrup,et al.  Runtime concepts for the C++ standard template library , 2008, SAC '08.

[23]  Jaakko Järvi,et al.  Algorithm specialization in generic programming: challenges of constrained generics in C++ , 2006, PLDI '06.