1

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

4

2 回答 2

5

如果编译器认为它会提高性能,它将内联该函数。如果它认为它不会提高性能,它就不会内联它,即使它是在标题中定义的。如果它实际上没有内联该函数,它还将注意当该函数出现在不同的编译单元中时链接器不会混淆。

即使您声明了一个函数,这同样适用inline

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

于 2013-04-24T00:33:42.540 回答
1

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

于 2013-04-24T00:34:14.827 回答