【发布时间】:2014-02-11 13:19:30
【问题描述】:
我正在编写一个侵入式数据结构并且想知道是使用基钩子还是成员钩子。由于代码将被多次调用,我的问题是关于性能以及编译器能够在多大程度上内联此类代码。
基本钩子基于继承,而成员钩子通过模板参数使用指向成员的指针。 我的设计选择是使用成员钩子,但我的经验表明,指针比静态代码更难优化。另一方面,所有这些指针在编译时都是已知的,也许编译器可以做一些魔术来分析正在发生的事情。
有人有这方面的经验吗?欢迎提供任何数据、提示或参考。
【问题讨论】:
-
能否提供代码示例?
-
@ArmanHunanyan 你有什么样的例子? boost intrusive 有很好的描述。至于我自己的代码,放在这里会太大而且断章取义。
-
注意:您忘记了另一种选择 => 一个属性
template <typename T> class IntrusiveListHook,该类应该公开公开,并且它本身不会公开任何内容(但它有一个template <typename> friend class IntrusiveList)
标签: c++ performance templates inlining intrusive-containers