Just like a template type, auto follow the same deduction rule. template
type deduction happen when you call a function or build a customize
type. auto deduction happen when you initialize use assignment. Herejust think the auto is T in the template deduction