Специализация шаблона должна быть объявлена в том же файле (1), что и основной шаблон (2), как определяемый пользователем тип, для которого объявлена специализация
Специализация шаблона должна быть объявлена в том же файле (1), что и основной шаблон (2), как определяемый пользователем тип, для которого объявлена специализация.
Соблюдение этого правила позволяет избежать ситуаций, когда поведение не определено. Например, если компилятор видит частичную специализацию шаблона после создания экземпляра шаблона, поведение не определено. При специализации шаблона в том же файле, что и шаблон, вероятность возникновения такой ситуации снижается.
Также можно легко расширить интерфейсы времени компиляции за счет специализации, так как шаблон и его специализация находятся в одном файле и части одной единицы перевода. То же самое относится и к требованию о том, что специализация шаблона должна находиться в том же файле, что и тип, для которого шаблон является специализированным.
Средство проверки проверяет каждую специализацию шаблона и вызывает нарушение, если:
Специализация находится не в том же файле, что и специализированный шаблон.
Специализация находится не в том же файле, что и определяемый пользователем тип, для которого шаблон является специализированным.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Шаблоны |
| Категория: Обязательно, Автоматизировано |