C++ does not have a function keyword at all, I wonder why did they add it in the first place.
To avoid any possibility of reintroducing the Most Vexing Parse?
It doesn't, but you can pretend it does:
auto my_function(int, double) -> int;
They probably want to use the same arrow signature and need something in place of auto as omitting it completely would complicate parsing.
The c++ notation for functions (and types in general) is horrible, and makes parsing much more expensive than it needs to be. Fixing it is step one if you are making a modern language.