Why is that automatic type deduction is possible only for functions and not for Classes?
At Kona meeting Template parameter deduction for constructors (P0091R0) has been approved, which means that in C++17 we'll be able to we can write:
pair p1{"foo"s, 12}; auto p2 = pair{"foo"s, 12}; f(pair{"foo"s, 12});