1

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

我的问题是:

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

1 回答 1

5

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

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

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

于 2013-03-11T21:04:05.903 回答