内联公共接口的方法

时间:2013-03-11 20:58:27

标签: c++ compilation linker inline

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

我的问题是:

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

1 个答案:

答案 0 :(得分:4)

如果您标记了您的函数inline,那么您 可以在每个使用它的翻译单元中提供定义。这与将定义放在单个.cpp中无关。

如果您想将功能放在一个.cpp中,则不应将其声明为inline。如果希望内联函数,则必须依赖工具链,将合适的优化标志传递给编译器和链接器。您的工具链实际内联的功能是您需要进行实验的内容。

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