auto
is used in the syntax for trailing return type:
auto main() -> int {}
which is equivalent to
int main() {}
Mostly useful combined with decltype
to use parameters instead of std::declval<T>
:
template <typename T1, typename T2>
auto Add(const T1& lhs, const T2& rhs) -> decltype(lhs + rhs) { return lhs + rhs; }