What does this say:
return static_cast<Hasher &>(*this)(key);
?
I can't tell whether *this or key is passed to static_cast. I looked around and found this answer, but unlike what I'm stuck on, there's nothing inside the first pair of parentheses.
The statement is parsed as
So, the argument to
static_castis*this. Then the result of the cast, let's call itx, is used as postfix-expression in a function call withkeyas argument, i.e.x(key), the result of which is returned.