Bjarne Stroustrup

October 13, 2010. 4 hours workshop

What are the fundamental techniques for writing reliable, maintainable, and efficient C++?

This tutorial emphasizes simple, statically-typed interfaces and structured resource management. It mentions class hierarchies and object-oriented programming only in passing, assuming that you know enough of about those already. The focus is on the building blocks out of which larger and more heavyweight systems and frameworks can be built.

The key to reliability and performance are simple “lightweight” classes (incl. resource handles), type safety, absence of direct pointer use, and inlining. Thus, the design of concrete classes is examined. The notion of class invariants established by constructors is a key element and leads to error-handling strategies based on exceptions. The strategy of resource management based on (small) local variables (RTTI, Resource Acquisition is Initialization) is presented with examples from C++0x (move semantics, unique_ptr). These examples can also be done in C++98, but the implementation is less straightforward.

Templates are essential for those techniques as the basis for statically type-safe containers and algorithms, for generality, and for avoiding overheads. I present the use of templates to support generic programming with an emphasis on the STL (the containers and algorithms parts of the ISO C++ standard library) and examples of simple compile-time metaprogramming.

Cost of Course “Advanced Programming Techniques”

September October
180 USD 220 USD

This workshop will be organized at the Big Hall of the House of Culture MGTU n/a N.E. Bauman ( Moscow, Rubtsovskaya Naberezhnaya (embankment) 2/18). All the other events of the Conference will be held at The Cultural Centre of HSE. Moscow, Vorontsovo Pole, 5A . Visit to learn more about the venue

C++ Tutorial: Advanced Programming Techniques


Bjarne Stroustrup is the designer and original implementer of C++ and the author of several books (incl. “Programming — Principles and Practice using C++” and “The C++ Programming Language”) and many popular and academic publications. His research interests include distributed systems, design, programming techniques, software development tools, and programming languages. He is actively involved in the ISO standardization of C++.

Dr. Stroustrup is the College of Engineering Chair Professor in Computer Science at Texas A&M University. He did his early work on C++ in AT&T Bell Laboratories’ Conputer Science Research Center in Murray Hill New Jersey and retains a link with AT&T Labs - Research as an AT&T Fellow.

He is a member of the US National Academy of Engineering, and IEEE Fellow and an ACM fellow.

Born in Aarhus Denmark 1950. Cand.Scient. (Mathematics and Computer Science), 1975, University of Aarhus Denmark. Ph.D. (Computer Science) 1979, Cambridge University, England.