假设我有一些函数,每个函数大约有两行简单的代码,他们互相称呼:A调用B调用C调用D...调用K.(所以基本上它是一系列短函数调用.)编译器通常会在调用树中深入内联这些函数有多深?
我知道你可以使用inline关键字,或者只是将一个方法放在类声明ala short ctor或getter方法中,但编译器是否最终决定何时内联我的方法?
例如:
inline void Foo::vLongBar()
{
//several function calls and lines of code
}
Run Code Online (Sandbox Code Playgroud)
如果编译器认为它会使我的代码效率低下,它会忽略我的内联声明吗?
作为一个副作用,如果我在我的类之外声明了一个getter方法,如下所示:
void Foo::bar() { std::cout << "baz"; }
Run Code Online (Sandbox Code Playgroud)
编译器是否会在内幕中内联这个内容?