What is a static function but isn't a static function
summary
Claims that making the implicit this explicit (the deducing this proposal) turns some member functions into ordinary function-signatures so they can be used as higher-order functions, pointers, and with std::invoke, shown with assembly and calling examples. Demonstrates tool differences: clang vs msvc accept different encodings and pointer-initialization behaviors while GCC rejects some forms. Shows concrete code that collapses the usual eight CV/ref overloads to one implementation and highlights when calls actually compile or produce ambiguous errors.
AI-written summary · about
chapters (14)
- 0:00Welcome
- 2:11Talk introduction
- 4:46Compiler function call resolution
- 9:00Overload resolution ambiguities
- 13:16Ref-qualifiers in overloads
- 15:42Static member functions
- 18:59Higher-order functions
- 22:36Function pointer quirks
- 27:15Overloads with function pointers
- 33:24Static member functions that aren't
- 39:07Deducing 'this'
- 41:40Overload limits
- 45:16Conversion operators
- 47:22Lessons from wild night
related talks
01h 10mstd::function: a deep dive behind the curtain
01h 01mCalling Functions: A Tutorial
01h 03mDeducing this Patterns
01h 02mImplicit Conversions Considered Harmful
01h 10mstd::function: a deep dive behind the curtain
01h 03mHidden Overhead of a Function API
23mFunctional Programming in C++ (Run time vs Compile time types)
06mmy favorite C++ feature
