最近,我在别人的源代码中遇到了一些东西。我不太了解 C++ 中的模板。你能帮我吗?
struct my_grammar : public grammar<my_grammar>
{
...
};
为什么my_grammar可以像它一样用作类型参数?
最好的问候,
最佳答案
这是一个叫做奇怪的重复模板模式的成语 - 参见 http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern .总之,它提供派生类作为基类的策略,其风格类似于 Alexandrescu 的《现代 C++ 设计》一书中使用的策略(强烈推荐)。这样,基类可以使用派生类的各个方面 - 类型、常量、方法 - 所有这些都在编译时解决。
关于c++ - 在 C++ 中使用模板是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4094414/