-
说明
-
对应关系
-
案例分析
-
差异案例一
template<typename T> void show(T a) { // error code } int main() { show({1,2,3}); }
- 编译报错
template
不支持两次推导.
-
auto
两次推导#include <initializer_list> int main() { auto a = {1,2,3}; }
- 第一次推导是编译器将
{}
推导成initializer_list<T>
. - 然后是
initializer_list<T>
的T
的推导.即valutype - argtype - const,volatile,xxx
.
- 第一次推导是编译器将
-
类型推测二义性
- 即推导出来的
T
不唯一. {1,2,3.0}
,推导出来的类型就不唯一.
- 即推导出来的
-
-
如何让模板兼容
-
核心
-
C++14
auto 和 template 的区别
最新推荐文章于 2024-01-11 16:55:57 发布