主要是头文件的文件结构(90% 的代码只有头文件)会减慢编译之外的任何东西吗?
有些人认为,在速度优化的情况下,它可能会导致大多数代码的内联,因此处理器会计算出关于指令调用或类似情况的错误统计信息。是否有任何地方表明它或类似的事情会发生并因此减慢应用程序速度?
链接是一个问题。
如果您的库以标头为主,则可能需要先写入然后读取较大的中间目标文件。然后,链接器将有更多符号要分析和重复数据删除,并且一些符号将保留为合法重复。这会增加您的 I/O,使您的二进制文件变大,并在链接器上投入更多的工作。
标头优势的一个好处是编译的源往往更少,因此要链接的图像/对象也更少。因此,仅标头在这方面也有可能更快(如果使用正确)。
如果您的库将对许多翻译可见,那么大小和对链接的影响也应该是一个重要的考虑因素。
不是性能,而是潜在的错误问题:
来自使用指南:在类定义主体中声明的 C++ 类成员函数总是被内联。如果类成员函数具有静态成员,这将导致每个内联函数实例都有自己的静态成员。这会导致错误。