Normal C style declaration
int foo() { return 2; }
auto foo() -> int { return 2; }
auto foo() { return 2; }
Normal C style declaration
Trailing return type. Useful when the return type depends on the parameter types, or is inside the namespace of the function Automated type deduction. Increasingly the choice when possible