Don't Help the Compiler

Day 1 - C++ has powerful rules for dealing with low-level program structure. Before a program is ever executed, the compiler determines valuable information about every expression in the source code. The compiler understands exactly how long each object's resources will be needed (lifetime), whether each expression refers to an object that the program has no other way of accessing (rvalueness), and what operations can be performed on each object (type). Using examples from C++98 through C++14, this presentation will demonstrate how to write code that works with the compiler's knowledge to increase robustness, efficiency, and clarity. This presentation will also demonstrate the horrible things that happen when programmers think they can do tasks that are better left to compilers.

Related Talks

Writing Quick Code in C++, Quickly

Writing Quick Code in C++, QuicklyDay 1 - Contemporary computer architectures make it possible for slow code to work reasonably well. They also make it difficult to write really fast code that exploits the CPU amenities to their fullest. And the smart money is on fast code—we're running out of cool things to do with ...

Why C++ Sails When the Vasa Sank

Why C++ Sails When the Vasa SankSource: I especially like 36:58 The Vasa was a 17th-century Swedish warship which suffered such feature creep during construction that it sank shortly after leaving the harbour on its maiden voyage. In the early 1990s, the C++ standardisation committee adopted the Vasa as a cautionary tale, discouraging prospective language extensions with ...