Hmm... I'm surprised that no semicolon is needed here. Is this intentional?
I would expect that it needs one if there's no function body. If you do this:
```
struct X {
    void foo()
}
```
the compiler complains: `Error: semicolon expected following function declaration`. Shouldn't this be required in all cases, for uniformity reasons?