Двухфазный поиск - требуется объяснение - PullRequest
69 голосов
/ 14 октября 2011

Что означает, что компилятор использует двухфазный поиск для компиляции шаблонного класса?

1 Ответ

62 голосов
/ 14 октября 2011

Шаблоны компилируются (по крайней мере) дважды:

  1. Без экземпляров сам код шаблона проверяется на синтаксис.
    Например: любые ошибки синтаксического типа, такие как ; и т. Д.

  2. Во время создания экземпляра (когда известен точный тип) код шаблона проверяется снова, чтобы убедиться, что все вызовы действительны для этого конкретного типа.
    Например: шаблонможет вызывать вызов функций, которые могут отсутствовать для этого конкретного типа.

Это называется Двухфазный поиск.

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