Обратный поиск на С++
Я программист 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
Вы запускаете шаблоны С++ - очень аккуратная функция!