2013-03-11 2 views
3

Я читаю в стандарте C++ проект n3485 14.7.2, и он говорит:Явное объявление конкретизации с экстерном

2 Синтаксис для явного конкретизации является: явной конкретизации: externнеавтоматического шаблон декларации

Существуют две формы явного экземпляра: явное определение экземпляра и декларация о явном создании. Явное объявление о создании экземпляра начинается с ключевого слова extern.

Видя, что объявление шаблона и определение всегда помещается в заголовок, я никогда не видел объявление с extern на шаблоне. Что именно означает это смелое предложение?

Кроме того, почему для справки о создании extern?

+0

«А также почему экземпляр-запрос об extern? _» Поскольку это синтаксис, используемый для явной декларации о создании. Почему компилятор игнорирует действительный синтаксис, который изменяет значение деления? Подобно 'extern int i;' он говорит: «это объявление, а не определение, будет определение где-то в программе» –

ответ

6

Он сообщает компилятору не создавать экземпляр этого шаблона в этом ТУ.

Обратите внимание, что он должен быть создан в одном TU (без extern бит), если вы хотите, чтобы ваш код действительно связывался.

Смежные вопросы