内联的标准是什么

Iva*_*ars 0 c++ inline

由于内联请求不是强制性的,编译器如何计算哪个函数应该内联?我应该在什么样的功能内联?

额外的问题.我可以拨打内联电话吗?

void func{} // normal (not-inline) function

int main()
{
  func();           // normal call
  // inline func(); // inline call
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

T. *_*ley 5

当您标记函数时,inline您建议编译器应该内联此函数.在(好的)编译器上,这既不能保证它也不会保证不存在.

所有内联函数都是用函数体代替函数调用.因此,虽然您无法建议编译器应该在哪里内联函数,但您显然可以实际粘贴代码(或使用宏来确保代码保持不变).但是你需要一个非常好的/奇怪的理由来做到这一点.

通常,如果您愿意,可以将小函数标记为内联,否则将其留给编译器.