Quick A: No, there is a specified syntax for it.
Recently on SO:
Yeah, this is not something you'd normally guess.virtual auto what() const noexcept -> const char * override;
This is just the order you have to use. The syntax could have been different, probably, but this is what we've got.