Tue & Thu 4:10–6:40pm
Online but synchronous final exam on Thursday June 3rd, 4:10pm
Instructor: Jae Woo Lee
Office hours:
5/4 |
Course overview and logistics
Hello C++
5/6 |
5/11 |
5/13 |
5/18 |
Template functions
Essential-6 in C++
Vector template class
Inheritance
5/20 |
I/O streams
to<>()
template function using stringstream
Revisited
Vector template class
Vec
with std:vector
vector::push_back()
5/25 |
Sequential STL containers
Iterators
5/27 |
Iterators (continued)
Intro to Template Metaprogramming
Functional programming in C++
bind()
6/1 |
Review
Function objects (aka functors) and Lambdas
Associative containers
Random number generator
6/8 |
Variadic templates
std::forward<T>
Smart pointers
SmartPtr<T>
implementationMakeSmartPtr()
shared_ptr<T>
& make_shared()
shared_ptr<T>
6/10 |
Template Metaprogramming – Guest lecture by James Yang
Abstract:
With a growing need for highly-optimized code in speed-critical applications, developers must seek other venues from traditional methods for greater optimization. In this lecture, we will introduce one such method called template metaprogramming, a C++ programming technique to make compile-time optimizations that mitigate run-time overhead. Specifically, we will study three common use-cases: compile-time function evaluation, compile-time unrolling of recursive function calls, and expression templates. We will also discuss the benefits as well as the drawbacks of these methods.
Course wrap-up