c++ - inline的标准是什么

标签 c++ inline

<分区>

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

额外问题。我可以调用内联电话吗?

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

int main()
{
  func();           // normal call
  // inline func(); // inline call
  return 0;
}

最佳答案

当您将一个函数标记为inline 时,您是在通知编译器该函数应该被内联。在(好的)编译器上,这既不能保证它会,也不能保证它不会。

所有内联函数所做的就是用代码主体替换对函数的调用。因此,虽然您不能建议编译器应该在何处内联函数,但您显然可以实际粘贴代码(或使用宏来确保代码保持不变)。但是您需要一个非常好的/奇怪的理由才能这样做。

一般来说,如果您愿意,可以将小函数标记为内联,否则将其留给编译器。

关于c++ - inline的标准是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21171902/

相关文章:

c++ - 为什么原生 C++ 项目有 TargetFrameworkVersion?

android - 内联 onFocusChange kotlin

c++ - 内联文件之间的循环依赖

java - 这个 if/else 语句可以减少或改进吗?

c++ - 如何对类定义中定义的模板成员函数使用显式模板实例化?

c++ - 大数除法

c++ - std::invoke_result on std::tie

c++ - CMDIChildWndEx 框架中的 DockPaneLeftOf

c++ - 常量/非常量重载解析的问题

HTML5 - 水平对齐图像和表格内联