1.宏是在预处理阶段处理,模板是在编译阶段处理

2.宏不会进行类型检查,只会单纯的进行文本替换,模板会进行类型检查。比如下面代码模板就会出错,而宏不会

模板与宏的区别(2019.10.22)_预处理

3.宏直接就可以产生代码,而编译器遇到模板定义时,并不产生代码,只有当模板实例化后时才会产生代码。