Lectures
The slides that I show during the lectures will appear below as the course proceeds.
Lecture topics
Note that the lecture slides contain topics and suggested reading for the following lecture.
# | Subject | Slides |
---|---|---|
L1 | Introduction: functions | (pdf) |
L2 | Introduction cont'd: data types and variables | (pdf) |
L3 | Modularity: source code organization and error handling | (pdf) |
L4 | Classes | (pdf) |
L5 | Resource management | (pdf) |
L6 | Generic programming: standard algorithms and iterators | (pdf) |
L7 | Templates and function objects | (pdf) |
L8 | Classes: const overloading and inheritance | (pdf) |
L9 | More about resource management and the standard library | (pdf) |
L10 | The project. More about the standard library | (pdf) |
L11 | Low level details and loose ends | (pdf) |
L12 | Recap | (pdf) |
Examples
Code examples from, or related to, the lectures
Lecture 1:
unsigned.cc : example of implicit arithmetic conversion.
Lecture 2:
object_value.cc : a small example demonstrating how the same object can be interpreted as different types.
Lecture 3:
example_adl.cc : example of Argument Dependent Lookup
Lecture 4:
ctors.cc : example: default, copy, converting and delegating constructors.
Lecture 5:
typecast.cc : example type cast to change the value of an object by changing its type.
Lecture 6:
print.cc : a minimal function template example
fn-state.cc : an example of a stateful function object
lambda.cc : an example of the difference between capture by value and by reference
Lecture 7:
template.cc : examples of deduction of template type parameters
Lecture 9:
example_copying.cc : example of resource management for containers
example_crtp.cc : example of "virtual dispatch" at compile-time, and "mixins"
Lecture 10:
variadic.cc : example of a variadic template
meta.cc : example of compile-time computation of n!
ref.cc : example of the standard reference wrapper and std::ref
ratio.cc : example of compile_time rational numbers using std::ratio
chrono.cc : example of the time representation classes
enable_if.cc : example of metaprogramming for selecting which overload to be used for a particular type