其他分享
首页 > 其他分享> > c – 如何使用内联函数的不同重载,具体取决于编译时参数?

c – 如何使用内联函数的不同重载,具体取决于编译时参数?

作者:互联网

我有一个性能关键的内联函数,内联T函数(T a,T b,int p).如果已知p为零,则可以对其进行相当优化.但是,我不能使用’if’并惩罚所有其他情况.我想要的是优化仅在编译时我知道p为零的函数.有没有一种干净的方法,可能使用模板魔术?

编辑

我不能使用不同的命名函数/不兼容的重载(我不知道如何正确表达),因为代码是非常低的级别.很可能,在另一个/未来的处理器上可以获得不同的优化机会.因此,通过将所有低级别的东西限制在一个函数签名中,我的代码只需要重新编译即可使用任何类型的优化.

解决方法:

它可以使用模板.看看Boost enable_if,它有很好的解释和用法示例

标签:c,inline,compile-time,optimization
来源: https://codeday.me/bug/20190827/1737260.html