首先auto型别推导与模板型别推导完全相同,也是按照前面说的三种情况进行推导,唯一的区别是在对大括号括起来的表达式进行推导时,auto会将其推导为一个std::initializer_list<T>的类型。代码示例如下:
请注意模板推导识别不了{ }类型,但是对于传入std::initializer_list<T>变量将被推导为int,如果函数模板本身就是std::initializer_list<T>型别,则可以顺利推导出{}型别:
2,3,4,5,6,7,8,9,10,11,12,13,14
首先auto型别推导与模板型别推导完全相同,也是按照前面说的三种情况进行推导,唯一的区别是在对大括号括起来的表达式进行推导时,auto会将其推导为一个std::initializer_list<T>的类型。代码示例如下:
请注意模板推导识别不了{ }类型,但是对于传入std::initializer_list<T>变量将被推导为int,如果函数模板本身就是std::initializer_list<T>型别,则可以顺利推导出{}型别: