Back to Basics - Name Lookup and Overload Resolution in C++
summary
Explains exactly how name lookup and overload resolution produce surprising behavior: unqualified lookup stops at the first scope found so a later overload can cause a silent behavioral regression; argument-dependent lookup finds functions by argument namespaces but resolves aliases to their underlying types; friend functions defined inside a class are hidden friends visible only via ADL; shows a C++20 customization point object pattern (ranges::swap style) that reliably finds user swaps and avoids global hijacks, and recommends flat namespaces and no function template specializations.
AI-written summary · about
chapters (11)
- 0:00Name lookup basics
- 1:47Overload sets and costs
- 8:27How name lookup works
- 15:33Unqualified lookup pitfalls
- 19:04Argument-dependent name lookup explained
- 28:07Lookup in function templates
- 35:16Customization points and hidden friends
- 42:02Swapping with ADL and ranges
- 52:29Lookup with template specializations
- 56:39Overload resolution process
- 1:00:11Summary








