Компиляция шаблонов C ++ - PullRequest
       20

Компиляция шаблонов C ++

0 голосов
/ 02 августа 2010

Я не могу ответить на вопросы, связанные с шаблонами.В основном, как шаблоны компилируются компилятором.Я погуглил, но не нашел ответов.Может ли кто-нибудь помочь мне

Ответы [ 2 ]

3 голосов
/ 02 августа 2010

Сами шаблоны не скомпилированы, особые экземпляры шаблонов есть.Шаблоны могут быть созданы простым использованием или явным образом

Например, с учетом шаблона функции:

template<class T> void f() {}

Это просто шаблон для функции, котораявы можете использовать:

f<int>(); // compiler will instantiate a concrete f<int>()

..., что приводит к компиляции конкретного экземпляра.В качестве альтернативы вы можете явно создать его экземпляр:

template void f<int>();

Однако оригинальный шаблон никогда не компилируется, он просто используется для создания конкретных экземпляров.

3 голосов
/ 02 августа 2010

Прочитайте книгу, как Шаблоны C ++ - Полное руководство Дэвида Вандевурда и Николая М. Йосуттиса.Помимо того, что он объясняет, как их использовать, он также дает некоторое представление о том, как они реализованы.

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