Calling Functions: A Tutorial
summary
Covers the concrete mechanics that determine which function the compiler actually calls: name lookup, template argument deduction, then overload resolution producing a single best candidate, followed by access checks, template specialization, virtual dispatch and deleted-function rules. Demonstrates surprises: hiding and two‑phase lookup, ADL only for user types, access is checked after overload resolution, deleted functions still exist and cause errors. Uses concise code examples and slides, points to cppreference and deeper talks for full details.
AI-written summary · about
chapters (16)
- 0:00Intro
- 3:04Overview
- 5:49Un-Qualified Name Lookup
- 15:48Argument Dependent Lookup
- 20:13Two-Phase Lookup
- 22:06Template Argument Deduction
- 25:52Finding a Best Match (1 Parameter)
- 31:09Templates vs. Non-Templates
- 33:11Promotions (Rank 2)
- 35:04Standard Conversions (Rank 3)
- 38:22User-Defined Conversions
- 42:44Finding a Best Match (Multiple Parameters)
- 46:34Access Labels
- 53:34Virtual Dispatch
- 54:16Deleting Functions
- 56:44Summary
related talks
01h 02mBack to Basics - Name Lookup and Overload Resolution in C++
01h 10mstd::function: a deep dive behind the curtain
01h 06mBack to Basics: Functions in C++
01h 10mstd::function: a deep dive behind the curtain
01h 05mBack To Basics: Overload Resolution
01h 09mFunctional Programming in C++
48mWhat is a static function but isn't a static function
33mC++: Unexpected Behaviour
