内联公共接口的方法

Mar*_*ero 1 c++ linker compilation inline

通常我更喜欢完全拆分声明和定义,因此,我倾向于定义内联方法,.cpp
我只是希望链接优化器在不同的编译单元中使用它时将其内联。

我的问题是:

  1. 如果我知道我的链接器在链接时支持内联,真的不鼓励在 cpp 中内联吗?
  2. 如果我想从另一个库调用该函数应该怎么做?(它会起作用吗?)

CB *_*ley 5

如果你标记你的函数,inline那么你必须在每个使用它的翻译单元中提供一个定义。这与将定义放在单个.cpp.

如果你想把一个函数放在一个单一的.cpp你不应该声明它inline。如果您希望函数被内联,您必须依赖您的工具链,将合适的优化标志传递给您的编译器和链接器。您的工具链实际上将内联哪些功能是您必须试验的。

根据您的工具链,您可以使用特定于实现的属性来装饰您的函数,以指示您想要内联的函数。