在C++中使用模板意味着什么

Yon*_*ing 4 c++ templates metaprogramming

最近,我在其他源代码中遇到了一些问题.我不太了解C++中的模板.你能救我吗?

struct my_grammar : public grammar<my_grammar>
{
    ...
};
Run Code Online (Sandbox Code Playgroud)

为什么my_grammar可以用作类型参数呢?

最好的祝福,

Ton*_*roy 11

这是一个名为Curiously Recurring Template Pattern的成语 - 请参阅http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern.总之,它将派生类作为策略提供给基类​​,其风格类似于Alexandrescu的Modern C++ Design书中使用的Policy(强烈推荐).这样,基类可以使用派生类的各个方面 - 类型,常量,方法 - 所有这些都在编译时解析.