我有一段性能关键代码,我正在考虑使用 CRTP。我的问题是大多数编译器能够在多大程度上优化代码。特别是我想知道编译器是否可以内联(在适当的时候)方法。例如,在下面的代码中:
template <class Derived>
struct Base
{
void interface()
{
// ...
static_cast<Derived*>(this)->implementation();
// ...
}
};
struct Derived : Base<Derived>
{
void implementation();
};
调用 object.interface()
会产生与调用 object.implementation()
相同的性能吗?
最佳答案
很有可能。当然,只有一种方法可以确定。
关于c++ - 类中使用 'Curiously Recurring Template Pattern' 的方法是否由现代 C++ 编译器内联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6282848/