The C++ looks messed up. I have yet to come across a keyboard that can type an arrow.
auto main() -> int {
(It's also modern C++ trailing return type.) int main() { template <typename A, typename B>
auto multiply(A a, B b) -> decltype(a * b) {
return a * b;
}
Its easier for the compiler to parse everything if `decltype(a * b) occurs _after_ the definition of `a` and `b`. Once this pattern was added and people started using it for that purpose, people also started using the pattern for all functions for consistency.