Обратный поиск в C ++ - PullRequest
       1

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

10 голосов
/ 05 октября 2010

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

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

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

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

Ответы [ 4 ]

9 голосов
/ 05 октября 2010

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

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

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

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

template <typename BOARD>
class Blah
{
   //...some code
   void Generate(SgPoint p);
   //...some more code
};
8 голосов
/ 05 октября 2010

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

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

6 голосов
/ 05 октября 2010

Это метод Generate шаблона класса Blah , предназначенного для параметра шаблона BOARD.

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

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

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

3 голосов
/ 05 октября 2010

Вы сталкиваетесь с C ++ шаблонами - очень удобная функция!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...