Шаблонная компиляция C++

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

0
задан Poorna 2 August 2010 в 10:44
поделиться

2 ответа

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

Например. задан шаблон функции:

template<class T> void f() {}

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

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

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

template void f<int>();

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

3
ответ дан 4 September 2019 в 00:47
поделиться

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

3
ответ дан 4 September 2019 в 00:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: