Template Argument Deduction – Core C++, Part 2

Visual CPP Team

Part 2 of my third video lecture series (covering the C++ Core Language) is now available.  In this part, I took an hour to explore template argument deduction, including what “non-deduced contexts” are – and how they can be used to your advantage!  For reference, here are all of the links to my video lectures, plus my GoingNative 2012 presentation:


[STL Introduction]

Part 1 (sequence containers)

Part 2 (associative containers)

Part 3 (smart pointers)

Part 4 (Nurikabe solver) – see Wikipedia’s article and my updated source code

Part 5 (Nurikabe solver, continued)

Part 6 (algorithms and functors)

Part 7 (algorithms and functors, continued)

Part 8 (regular expressions)

Part 9 (rvalue references)

Part 10 (type traits)


[Advanced STL]

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)

Part 5 (deduplicator, using Boost.Bimap, Filesystem, and ScopeExit) – see my deduplicate.cpp

Part 6 (container pretty printer) – see my pretty_printer.cpp


[GoingNative 2012]

STL11: Magic && Secrets (make_shared<T>(), emplacement, pair SFINAE, range-based for-loop) – see my slides


[Core C++]

Part 1 (name lookup)

Part 2 (template argument deduction)


Stephan T. Lavavej

Senior Developer – Visual C++ Libraries



Discussion is closed.

Feedback usabilla icon