https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102609
--- Comment #7 from waffl3x <waffl3x at protonmail dot com> --- struct S { int f(this S*) { return 5; } }; int main() { S s{}; return s.f(); } Here is my current progress, this code works. I have a good feeling that the rest is going to be easy. Except for deduction maybe, but I have a minor hunch that it might -just work- without any extra tinkering after everything else has been implemented. Also yes, I know that `int f(this S*)` is not a valid declaration, I just didn't have to change any member function call code for it to work this way so I made it my first goal to implement it this way. Actually, I guess it's not explicitly invalid is it? I don't recall seeing it in the pathological cases section of the paper, indeed, I just checked and there doesn't seem to be mention of it. I believe it should probably be valid though, not useful if you ask me. Even less so than the other pathological cases (which I think might actually prove to be useful in some cases.) However, regardless of my opinion, following the same direction as the original paper, I imagine it should be allowed. The class would just need an implicit conversion to pointer, maybe a warning would be in order though?