Scott Meyers: High-Performance C++ Programming
Rare is the C++ application where high performance is not a criterion for success. This seminar, based on Scott's famous books (Effective C++, More Effective C++ and Effective STL) focuses on how to best use the language and standard template library (STL) to create small, fast code.
Course Highlights
Participants will gain
- An understanding of when and why compilers create temporary objects and how to prevent them from doing it
- Insights into the role of inlining in improving - or decreasing - performance
- An assortment of techniques for using the STL most efficiently
- An understanding of the pros and cons of reference counting
Who Should Attend
Systems designers, programmers and technical managers involved in the design, implementation and maintenance of production libraries and applications using C++. Participants should already know the basic features of C++ (e.g. classes, inheritance, virtual functions, templates), but expertise is not required. People who have learned C++ recently, as well as people who have been programming C++ for many years, will come away from this seminar with usefuld, practical, proven information.
Format
Lecture and question/answer. There are no hands-on exercises, but participants are welcome to use their computers to experiment with the course material as it is presented.
Detailed Topic Outline
1. The 80-20 rule and program profiling
2. Language issues
- Eliminating unnecessary temporary objects
- Don't try to return a reference when you must return an object
- The pros and cons of inlining
- When custom memory managers make sense
3. Library issues
- Use reserve to minimize memory reallocations in vector and string
- Prefer range member functions to single-element versions for sequence containers
- Prefer function objects to functions
- Why sorted vectors can be superior to sets and maps for lookup-intensive applications
- STL containers based on hash tables
4. Reference Counting
- A reference-counted string implementation
- How changing the implementation changed the interface
- How threading issues can turn an optimization into a pessimization
5. Further Reading
6. Additional Efficiency Topics
Scott Meyers

Scott Meyers is an author and consultant with over thirty years of software development experience. His three best-selling "Effective C++" books defined a new genre in technical publishing, and his "Effective C++ CD" broke more new ground.
His consulting and research work has spanned a wide range of industries and topics, including regulatory genetics, CAD/CAE applications and video games. His current work focuses on identifying fundamental principles for improving software quality.
Scott is Consulting Editor for Addison-Wesley's Effective Software Development Series and sits on Software Development Magazine's technical advisory board. One of the world's foremost authorities on C++ software development, he offers consulting and training services to clients worldwide. He received his PhD in Computer Science form Brown University in 1993.




