#include <iostream>
template <typename Derived>
struct Base {
Derived&self()
{
return static_cast<Derived&>(*this);
}
const Derived&self() const
{
return static_cast<const Derived&>(*this);
}
public:
void start()
{
self().run();
}
};
class Derived : public Base<Derived> {
friend Base<Derived>;
void run()
{
std::cout << "Derived run()" << std::endl;
}
};父类调用子类, 不过不同的 Base<Derived> 是不同的类, 好像没什么用处CRTP 奇异递归模板模式
模板元编程示例
最新推荐文章于 2025-10-27 17:20:09 发布
本文介绍了一个使用C++模板元编程实现的简单示例,通过Base模板类和Derived派生类展示了如何在编译期间调用子类成员函数。此类技巧可用于避免运行时开销,提高程序效率。
1157

被折叠的 条评论
为什么被折叠?



