What's the difference between a declaration and a definition? What is a translation unit, and how is it related to the source code that you write? How would you describe the one-definition rule? What is name-mangling? If the answers to these questions are a little hazy for you, or if you would like a refresher on the fundamentals of how source code is converted into executable programs, then this talk is for you.
In this session, we'll cover the process of compiling and linking C++ source code, describing and discussing the key concepts involved in that process along the way. Attendees will leave with a basic understanding of such fundamental concepts as translation units, declarations, definitions, the one-definition rule, name-mangling, ABIs, and how the compiler and linker conspire to convert human-readable source code into binary code that executes on hardware.