gpt4 book ai didi

c++ - 我可以将每个 C++ 库转换为仅包含头文件的库吗?

转载 作者:太空狗 更新时间:2023-10-29 20:29:14 25 4
gpt4 key购买 nike

在 C++ 中,库可以仅以 header 格式分发。我想知道是否可以将每个库转换为仅 header 库?或相反亦然?应该使用什么标准来决定我是否应该在仅 header 下分发库?除了必须重新编译仅包含头文件的库之外,还有其他可能影响决策的考虑因素吗? “内联”如何在仅 header 库中发挥重要作用?

谢谢,

最佳答案

一般来说,标题中的任何内容都被认为是内联的。这对某些库可能是有利的,但通常应慎重使用。在 header 中放置过多的逻辑可能会导致一些不良后果:客户端代码的相互依赖、逻辑更改后的编译时间过长、由于过度使用内联而导致的代码膨胀等等。其中一些问题可以通过一个好的优化编译器来缓解。一般来说,我建议不要将复杂的逻辑放在内联函数中,因此放在头文件中,因为它是导致这些问题的主要原因。

至于相反,是的,大多数作为 header 分发的库都可以转换为更传统的库。异常(exception)情况是严重依赖模板化代码的库,因为这通常在编译时进行解释。

关于标准,我会说如果代码大量模板化和/或主要由简单函数组成,那么头文件库将是一个可接受的选择。否则,普通库几乎肯定是更好的选择。

关于c++ - 我可以将每个 C++ 库转换为仅包含头文件的库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10610405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com