反向C++查找

Mic*_*ick 10 c++ templates

我是一名"C"程序员,只知道最微小的C++.我正在研究一些开源C++代码,试图理解它正在做的一些事情.我可以解决大部分问题,但有时会出现我无法识别的语法,我希望能够"查找"语法的含义,这样我才能阅读足以理解C++的内容.但是你不能只是在google中键入一堆符号 - 或者在C++中找出其中的含义.有关我如何能够做到这一点的任何建议吗?

我现在正在努力的具体语法如下:

void Blah<BOARD>::Generate(SgPoint p)
Run Code Online (Sandbox Code Playgroud)

是什么的意义<BOARD>在这方面?为了理解它,我应该查看什么?

Pra*_*rav 9

void Blah<BOARD>::Generate(SgPoint p)

Generate类模板 的成员函数Blah.

BOARD 是参数的名称.

你的课Blah可能是这样的:

template <typename BOARD>
class Blah
{
   //...some code
   void Generate(SgPoint p);
   //...some more code
};
Run Code Online (Sandbox Code Playgroud)


Let*_*_Be 8

Blah最有可能是模板类,Generate是从这个类的方法,这是最有可能的方法定义的第一行.

编辑:哦,BOARD是模板参数(可以是类型或整数值).

  • 对不起.在我的辩护中,我可以说我几乎每天在这里纠正一个人.这可能就是为什么我的模式匹配器错误地为你答案了... (2认同)

Ste*_*end 6

这是专门用于模板参数GenerateBlah 类模板的方法BOARD.

换句话说,接下来是在Blah使用模板处理类实例时调用的实际代码BOARD.

如果存在单独的特殊化,或者通过默认的非专用实现,则可以以不同的方式处理其他类Generate,或者如果没有默认值且没有专门化,则根本不处理 - 在这种情况下,尝试调用该类函数不会编译.

有一个简短的介绍模板专业化的话题在这里.