冗长、复杂的模板成员方法会影响性能

Will long, complex template member method affect the performance?

本文关键字:成员方法 影响 性能 复杂 冗长      更新时间:2023-10-16

我知道长而复杂的内联方法可能会影响性能(尽管短而简单的内联方法可能会提高性能)。然而,模板类的方法必须在头文件中定义。它们是否内联?如果是这样,会对性能有什么影响吗?我应该在模板类中有长而复杂的方法吗?

如果编译器认为内联函数可以提高性能,它将内联函数。如果它认为它不会提高性能,它就不会内联它,即使它在头文件中定义。如果它实际上没有内联函数,它也会注意当这个函数出现在不同的编译单元中时,链接器不会混淆。

即使在声明函数inline时也是如此。

所以编译器做最好的,你不必担心它。

您应该编写您需要的代码,并将其留给编译器来确定如何最好地使用它。在头文件中定义模板函数不会使它们内联;编译器可能会内联它们,也可能不会。