Tag: 折衷

为什么不标记所有内联?

首先,我不想要强制编译器内联每个函数的实现。 为了减less误导的答案的水平,请确保您了解inline关键字的实际含义。 这里是很好的描述, 内联vs静态vs外部 。 所以我的问题,为什么不标记每个函数定义inline ? 理想情况下,唯一的编译单元是main.cpp 。 或者可能还有一些不能在头文件中定义的函数(pimpl idiom等)。 这个奇怪的请求背后的理论是它会给优化器最大的信息工作。 它当然可以内联函数实现,但是它也可以做“跨模块”优化,因为只有一个模块。 还有其他优点吗? 有没有人用真正的应用程序试过这个? 表演增加了吗? 减less?!? inline标记所有函数定义有什么缺点? 编译可能会更慢,会消耗更多的内存。 迭代构build被破坏,整个应用程序将需要在每次更改后重build。 链接时间可能是天文数字 所有这些缺点只会影响开发者。 什么是运行时间的缺点?