什么时候我应该写关键字内联的函数/方法在c++ ?

在看到一些答案后,一些相关的问题:

在c++中,什么时候我不应该为函数/方法写关键字“内联”? 什么时候编译器不知道什么时候使一个函数/方法'内联'? 当一个应用程序为一个函数/方法写“内联”时,它是否重要?


当前回答

在进行模板特化时,仍然需要显式内联函数(如果特化在.h文件中)

其他回答

你要把它放在最开始,在返回类型之前。但是大多数编译器忽略了它。如果它是定义的,并且它的代码块较小,大多数编译器都认为它是内联的。

什么时候应该内联:

1.当人们想要避免调用函数时发生的开销,如参数传递,控制传递,控制返回等。

2.函数应该很小,经常被调用,并且内联是非常有利的,因为根据80-20规则,尽量使那些对程序性能有重大影响的函数内联。

正如我们所知,内联只是一个请求编译器类似于注册,它将花费你在对象代码大小。

1)如今,几乎从来没有。如果内联一个函数是个好主意,编译器会在没有你帮助的情况下完成它。

2)。看到# 1。

(经过编辑,反映出你把问题分成了两个问题……)

F.5:如果一个函数非常小并且对时间要求很高,那么就内联声明它

原因:一些优化器在没有程序员提示的情况下很擅长内联,但不要依赖它。测量!在过去40年左右的时间里,我们一直被承诺在没有人类提示的情况下,编译器可以比人类更好地内联。我们还在等待。指定inline(在类定义中编写成员函数时显式或隐式)可以鼓励编译器更好地完成工作。

来源:https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines.html Rf-inline

有关示例和异常,请访问源代码(参见上面)。

在进行模板特化时,仍然需要显式内联函数(如果特化在.h文件中)