【发布时间】:2013-06-04 00:25:03
【问题描述】:
我没有对问题的准确描述,所以我只是想问一下这是否可能(如果是的话,其他一些信息会很好)。
一位程序员告诉我,您可以避免由虚函数/多态性引起的运行时开销。他说为了避免运行时开销,您可以在名为 Curiously_recurring_template_pattern 的模式中使用模板,它看起来像这样:
class Derived : public Base<Derived>
{
// ... implementation here
};
这种奇怪重复的模板模式是如何工作的?
如何使用 Curiously-Recurring-Template-Pattern 来替代普通的虚函数/多态性?
我弄错了吗?
【问题讨论】:
-
不能。两者完全不同,解决的问题也不同。但是,通常情况下,人们在应该使用 Y 时错误地使用了 X,然后建议是“使用 Y 而不是 X”。这并不意味着 X 和 Y 相关,只是人们不知道他们在做什么。
-
哇,是CRTP模式。
标签: c++ templates virtual-functions crtp