我是一名“C”程序员,只知道最微小的C ++。我正在研究一些开源C ++代码,试图理解它正在做的一些事情。我可以解决大部分问题,但有时会出现我无法识别的语法,我希望能够“查找”语法的含义,这样我才能阅读足以理解C ++的内容。但是你不能只是在google中键入一堆符号 - 或者在C ++中找出其中的含义。关于我如何能够做到这一点的任何建议?
我现在正在努力解决的具体语法如下:
void Blah<BOARD>::Generate(SgPoint p)
<BOARD>
在这种情况下有什么意义?为了理解它,我应该查看什么?
答案 0 :(得分:9)
void Blah<BOARD>::Generate(SgPoint p)
Generate
是class template Blah
的成员函数。
BOARD
是参数的名称。
您的班级Blah
可能是这样的:
template <typename BOARD>
class Blah
{
//...some code
void Generate(SgPoint p);
//...some more code
};
答案 1 :(得分:8)
Blah
很可能是模板化类,Generate
是此类中的方法,这很可能是方法定义的第一行。
编辑:哦,BOARD
是模板参数(可以是类型或整数值)。
答案 2 :(得分:6)
这是专门用于模板参数Generate
的{{1}} class template的Blah
方法。
换句话说,接下来是当BOARD
模板用于处理类Blah
的实例时调用的实际代码。
如果存在单独的专业化,或者通过BOARD
的默认非专业化实现,可以以不同的方式处理其他类,或者如果没有默认值且没有专门化,则可以不处理其他类 - 在在哪种情况下,尝试调用该函数将无法编译。
对模板专业化here的主题进行简短介绍。
答案 3 :(得分:3)
你遇到C++ templates - 非常简洁的功能!