Back To Basics: Overload Resolution
summary
Condenses the C++ standard to the concrete rules that decide overload choice: ranking of standard conversions (exact match, promotions vs conversions), template argument deduction vs non-templates, user‑defined and ellipsis conversions, and the C++20 concepts tie‑breaker. Shows surprising ambiguites (int→long vs int→char, 32–35 page standard clauses cited), runnable examples and quizzes, and practical fixes: mark constructors explicit, use SFINAE/concepts or explicit casts, add/remove overloads. Companion code lives on GitHub (CopperSpice, DoxyPress, cs_string, cs_signal, libGuarded) and examples behave consistently across compilers.
AI-written summary · about
chapters (23)
- 0:00Intro
- 0:33Overview
- 1:42About CopperSpice
- 3:59About Open Source
- 4:20Terminology
- 9:41Do thing
- 11:30Default arguments
- 13:50Overloads vs Templates
- 15:52What is Overload Resolution
- 19:09Overload Resolution Process
- 24:14Ranking
- 27:40Standard conversions
- 30:05Quiz
- 33:56UserDefined Conversion
- 35:25tiebreakers
- 37:47online question
- 42:17no matching function
- 43:04a listing
- 43:50fun round
- 49:44Back to example 7
- 55:43Back to example 9
- 58:39Takeaway
- 59:31YouTube Channel
related talks
01h 02mBack to Basics - Name Lookup and Overload Resolution in C++
01h 10mAn Overview of C++11/14, Part II
01h 01mthe Concepts of concepts
01h 03mBack to Basics: The C++ Core Guidelines
59mBack to Basics: Generic Programming in C++
01h 02mBack to Basics: Templates in C++
33mC++: Unexpected Behaviour
01h 01mBack to Basics: C++ API Design
