Abstract
C++ is a large and complicated language. People get lost in details. However, to write good C++ you only need to understand a few fundamental techniques – the rest is indeed details. This paper presents fundamental examples and explains the principles behind them. Among the issues touched upon are type safety, resource management, compile-time computation, error-handling, concurrency, performance, object-oriented programming, and generic programming. The presentation relies on and introduces a few features from the recent ISO C++ standard, C++11, that simplify the discussion of C++ fundamentals and modern style.
Keywords
References
ISO/IEC JTC1 SC22 WG21 N3092: Programming Languages — C++
Stroustrup, B.: The C++ Programming Language (Special Edition). Addison Wesley, Reading (2000) ISBN 0-201-70073-5
Stroustrup, B.: Programming – Principles and Practice Using C++. Addison-Wesley (December 2008) ISBN 978-0321543721
Stroustrup, B.: The C++11 FAQ, http://www.research.att.com/~bs/C++11FAQ.html
Stroustrup, B.: Abstraction and the C++ Machine Model. In: Wu, Z., Chen, C., Guo, M., Bu, J. (eds.) ICESS 2004. LNCS, vol. 3605, pp. 1–13. Springer, Heidelberg (2005)
Stroustrup, B.: The Design and Evolution of C++. Addison Wesley (March 1994) ISBN 0-201-54330-3
Ramananandro, T., Dos Reis, G., Leroy, X.: A Mechanized Semantics for C++ Object Construction and Destruction with Applications to Resource Management. In: POPL 2012, Philadelphia (Pennsylvania), USA (January 2012)
Dos Reis, G., Stroustrup, B.: General Constant Expressions for System Programming Languages. In: The 25th ACM Symposium On Applied Computing, SAC 2010 (March 2010)
Stroustrup, B.: Software Development for Infrastructure. IEEE Computer (January 2012)
Barron, D.W., et al.: The main features of CPL. The Computer Journal 6(2), 134 (1963)
Velthuizen, T.L.: C++ Templates are Turing Complete. University of Indiana Technical Report (2003)
Veldhuizen, T.: Using C++ template metaprograms. C++ Report 7(4) (May 1995)
Gregor, D., Jarvi, J., Siek, J., Stroustrup, B., Dos Reis, G., Lumsdaine, A.: Concepts: Linguistic Support for Generic Programming in C++. In: OOPSLA 2006 (October 2006)
Dos Reis, G., Stroustrup, B.: Specifying C++ Concepts. In: POPL 2006 (January 2006)
Sutton, A., Stroustrup, B.: Design of Concept Libraries for C++. In: Proc. International Conference on Software Language Engineering, SLE 2011 (July 2011)
Stepanov, A., McJones, P.: Elements of Programming. Addison-Wesley Professional, June 19 (2009) ISBN-13: 978-0321635372
Stroustrup, B., Sutton, A. (eds.): A Concept Design for the STL. WG21 Technical Report N3351=12-0041 (January 2012)
Williams, A.: C++ Concurrency in Action – Practical Multithreading. Manning Publications (2012) ISBN: 1933988770
Dos Reis, G., Stroustrup, B.: A formalism for C++. N1885 (October 2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Stroustrup, B. (2012). Foundations of C++. In: Seidl, H. (eds) Programming Languages and Systems. ESOP 2012. Lecture Notes in Computer Science, vol 7211. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-28869-2_1
Download citation
DOI: https://doi.org/10.1007/978-3-642-28869-2_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-28868-5
Online ISBN: 978-3-642-28869-2
eBook Packages: Computer ScienceComputer Science (R0)