Basic template argument deduction