auto使うのって例えば

template <class U, class V>
auto func(U& a, V& b) -> decltype(a + b);

みたいに戻り値の型が簡単に推測しにくい時に使ってるけどな