零成本抽象概念是由 Bjarne Stroustrup 提出的,他在 1994 年的著作中就有相关设想,2016 年其在 C++ 大会登台演讲时,明确阐述了 C++ 中的 “零成本抽象” 这一理念。
一、零成本抽象概念
Bjarne Stroustrup提出的零成本抽象概念,是指在编程中使用高级抽象机制时,不会产生额外的运行时性能开销.以下是对零成本抽象概念的详细介绍:
- 目标与意义:零成本抽象的主要目标是让程序员在享受高级抽象带来的诸如代码复用性、可读性、可维护性等好处的同时,无需担忧性能损失,从而在抽象层次和性能之间达到平衡,使得软件系统既能满足功能和可维护性需求,又能保证性能要求.
- 具体体现:
- 编译时多态性与模板机制:以C++的模板为例,在编译阶段,编译器会根据实际使用的类型参数为模板函数或模板类生成特定的代码版本,其性能与手动编写针对特定类型的代码相同。例如,对于模板函数
template<typename T> T a
- 编译时多态性与模板机制:以C++的模板为例,在编译阶段,编译器会根据实际使用的类型参数为模板函数或模板类生成特定的代码版本,其性能与手动编写针对特定类型的代码相同。例如,对于模板函数