C9 Lectures: Stephan T Lavavej - Advanced STL, 6 of 6
- Posted: Jul 11, 2011 at 10:24AM
- 94 comments
Loading user information from Channel 9
Something went wrong getting user information from Channel 9
Loading user information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
Right click “Save as…”
There are two STLs: the Standard Template Library and Stephan T. Lavavej
Advanced STL covers the gory details of the STL's implementation -> you will therefore need to be versed in the basics of STL, competent in C++ (of course), and be able to pay attention! Stephan is a great teacher and we are so happy to have him on Channel 9—the only place you'll find this level of technical detail regarding the internals of the STL. There are no books. There are no websites. This is Stephan taking us into what is uncharted territory for most, even those with a more advanced STL skill set.
This is a very special episode—it was driven by you!
In Part 5, Niner KerrekSB commented that a great topic for this advanced series would be developing a generic mechanism for printing out STL containers (like a vector of ints). Then Sven Groot helped out with his usual brilliance. I love this Niner interaction!
You got STL to lecture on this stuff! That is HUGE
In fact, STL was so impressed that he decided to try it out himself and see how generic he could make it. He uses only those STL features available in VC10 SP1 (for example, variadic templates are not used in his solution because the feature is not implemented in VC 2010 SP1...).
What did Stephan come up with? Get STL's PrettyPrinter implementation, then watch this great episode to learn the details behind the code. Thanks STL, KerrekSB, and Sven Groot for an excellent exercise!
Part 1 (shared_ptr - type erasure)
Part 2 (equal()/copy() - algorithm optimizations)
Part 3 (_ITERATOR_DEBUG_LEVEL, #pragma detect_mismatch, and /d1reportSingleClassLayout)
Part 4 (rvalue references v2.1 and associative container mischief)
Watch STL's great introductory series on the STL