在模板编程中,有几个常用的技术:模板(偏)特化,特性萃取,标签分派,匹配失败不是错误.其中模板(偏)特化是基础,匹配失败不是错误(SFINAE)应用最为广泛. 现代C++对模板编程做了更多的加强,boost.hana又结合constexpr和lambda把类型与值的计算统一了起来.放眼C++世界,尤其是C++库,几乎都是使用模板的泛型编程. 话说在C++的世界中(并且几乎所有语言中)函数的作用是最为明显的,试想:没有类也可以完成编程任务,但没有函数却不好说.另一方向只使用变量和语句也能完成少量的…