Обратный поиск на С++

Я программист C, который знает только самые маленькие биты С++. Я смотрю на код с открытым исходным кодом на С++, пытаясь понять некоторые вещи, которые он делает. Я могу выработать большую часть из них, но иногда есть синтаксис, который я не распознаю, и я хотел бы "посмотреть" значение синтаксиса, чтобы я мог читать достаточно, чтобы понять этот бит С++. Но вы не можете просто набрать кучу символов в google - или что-то еще, чтобы узнать смысл на С++. Любые предложения о том, как я могу это сделать в целом?

Конкретный синтаксис, с которым я сейчас борюсь, следующий:

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

Каково значение <BOARD> в этом контексте? Что я должен искать, чтобы понять это?

Ответ 1

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

Generate является функцией-членом шаблона Blah.

BOARD - это имя параметра.

Ваш класс Blah может быть таким:

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

Ответ 2

Blah, скорее всего, шаблонный класс, Generate - это метод из этого класса, и это, скорее всего, первая строка определения метода.

Edit: Oh и BOARD - это параметр шаблона (может быть типом или целым значением).

Ответ 3

Это метод Generate шаблона Blah специализированный для параметра шаблона BOARD.

Другими словами, следующим является фактический код, который вызывается, когда шаблон Blah используется для обработки экземпляра класса BOARD.

Другие классы могут обрабатываться по-другому, если для них существуют отдельные специализации или через неспециализированную реализацию по умолчанию Generate по умолчанию, или вообще нет, если нет дефолта и никакой специализации для них - в этом случае, попытка вызова этой функции не будет компилироваться.

Ниже приводится краткое введение в тему специализации шаблонов здесь.

Ответ 4

Вы запускаете шаблоны С++ - очень аккуратная функция!