不熟悉带模板的struct / class声明

时间:2010-06-22 13:34:23

标签: c++ templates struct

在浏览一些mili源代码时,我遇到了一个声明如下的结构:

template <class T, class Pre, class Pos>
struct PrePosCaller<T*, Pre, Pos>

(来自here

我不熟悉的部分是<T*, Pre, Pos>。我理解代码在这种情况下的作用及其目的,但我想知道在哪里记录所以我可以更多地学习/理解它。

3 个答案:

答案 0 :(得分:3)

  

我想知道它的记录在哪里

如果您正在寻找相关主题的介绍和背景,请获取C++ Templates: The Complete Guide的副本。
虽然最终文档本身就是C ++标准,但如果没有精心编写的概述,它就没那么有趣。

答案 1 :(得分:2)

这是一个模板专业化。特别是部分专业化

代码中的某处有一个模板声明为:

template <class T, class Pre, class Pos>
struct PrePosCaller { //...
};

或类似的东西。然后,他们为第一个参数是指针类型的情况提供该模板的特化。也就是说,当模板的第一个参数是指针时,这是PrePosCaller的模板定义。

答案 2 :(得分:1)

Thinking in C++ Vol. 2提供了关于模板和一些相关技术的教学观点。它也是一个关于C ++的优秀读物。它是免费的。

相关问题