1

我正在构建一个使用其他 CPP 代码的 RT CPP 程序。
我无法更改重用的代码!

我需要强制编译器内联几个方法。

我的问题显然是,我不能添加always_inline到代码中并感到高兴。

我正在 Windriver WorkBench 3.3VxWorks 6.9

注意:我可以随意更改环境。

有任何想法吗?

编辑(解释大局):

  • 图书馆是一个清晰案例项目
  • 该代码是许多项目(包括我的项目)使用的库
  • 每个项目使用不同的功能集
  • 在我的项目中,我们经常使用大约 20 个函数,并希望将它们内联以获得所需的性能

目前,我们“劫持”文件以内联函数,
但这并不好,因为我们错过了合并来自 lib 存储库的更改的机会。

我认为我们可以使用环境来指定编译器的内联决策,并避免“劫持”状态,能够合并库中的更改等。

注意:不同的项目会想要内联不同的功能。

4

1 回答 1

1

与其劫持文件,不如将其分支,并将内联指令添加到您的版本中?这样,您可以定期根据最新版本重新基线,并合并到最新的库中。

或者,将更改提取为补丁,并将补丁作为构建过程的一部分应用。这样至少您不必手动编辑它。

或者,使 always_inline 有条件,以便您可以在编译时打开它。这样,其他用户不会受到影响,这应该允许您在他们所属的库中进行更改

我不知道开发环境中有任何选项可以强制它,尽管您可能想要调整 -finline-limit,并且可能关闭 optimise-for-space。

但是您是否确认函数调用的开销确实有所作为?

于 2013-11-07T15:49:13.757 回答