我知道你可以使用inline关键字,或者像短构造函数(short ctor)或getter方法一样将方法放在类声明中,但编译器是否会最终决定何时内联我的方法?
例如:
inline void Foo::vLongBar()
{
//several function calls and lines of code
}
如果编译器认为将我的代码变得低效,那么它会忽略我的内联声明吗?
另外一个问题是,如果我像这样在类外面声明一个getter方法:
void Foo::bar() { std::cout << "baz"; }
编译器会在底层将此内联吗?
__forceinline
。这仍然不能让您内联不可能内联的函数,但它将覆盖编译器的成本/效益分析。 - Pavel Minaev