内联函数应该在共享库头文件中使用吗?

cro*_*bar 7 c++ inline shared-libraries header-files

假设没有要求保持实现私有,在头文件中提供内联函数是否有缺点?

我已经阅读了各种各样的事情,但没有看到明确的答案.在我的库的已安装标头中放入内联函数有哪些优缺点?选择这样做时有什么我应该考虑的吗?

小智 3

有可能提高性能,但您会失去动态链接的许多好处。通常,只需更新共享对象文件,即可使现有二进制文件受益于(ABI 兼容)更改、错误修复和改进。当某些库代码内联到二进制文件中时,您与静态链接处于同一条船上:您需要重新编译所有可执行文件以更新它们。

公平地说,这只会影响inline函数中代码的更改。但经验表明,需要不时更新的代码和受益于内联的代码之间存在一些重叠。