C++:内联函数和链接时间代码生成

标签 c++ visual-studio header inline

直到不久前,我的代码库还非常接近于 #include hell 。每次我更改一个稍微重要的 .h 文件时,几乎所有文件都会重新编译。
如此高的 header 依赖性的主要原因是我有许多需要内联的小函数,我的印象是为了内联工作,它们需要与调用代码在同一个翻译单元中,所以它们需要在标题中。对于甚至编译其他 header 的内联函数,也需要包含在 header 中,广告 infimum。

输入 link-time code generation (在 Visual Studio 中)。这样做的主要优点之一是现在内联函数可以跨翻译单元。
但我还是不确定。我怎样才能真正确定这些函数真的被内联了?我意识到无论我在哪里定义函数,编译器基本上都可以为所欲为。

有没有办法检查内联的内容?

最佳答案

我知道在 C++ 中这样说是禁忌,但您可以将这些函数实现为预处理器宏。打扰一下,我现在去用肥皂洗嘴。

关于C++:内联函数和链接时间代码生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/709047/

相关文章:

c++ - Amazon EC2 上的 socket.h 中的编译器错误

C++ 函数包装器捕获特定信号

java - 在java smslib中访问和更改用户数据头

c# 如何在表单加载之前阻止 "CheckBox CheckedChanged"触发?

c# - 如何在不使用 Azure 的情况下在控制台应用程序的 Visual Studio 2015 诊断工具窗口中查看 SQL 事件(Application Insights)?

c# - 扩展头删除 "_"字符

image - JavaMail 时尚邮件

c++ - 为什么模板只能在头文件中实现?

python - 如何在C++ Builder 2010(非Delphi)应用程序中嵌入Python?

c++ - 将模板参数传递给 MSVC 中的宏