Информация об изменениях

Сообщение Re: Ключевое отличие шаблона от макроса от 09.07.2023 13:16

Изменено 09.07.2023 13:25 rg45

Re: Ключевое отличие шаблона от макроса
Здравствуйте, Shmj, Вы писали:

S>Он должен быть целиком и полностью определен в заголовочном файле — нельзя разнести декларацию и дефиницию, как с обычной функцией или классом.


Вот это твое заблуждение, обусловленное недостатком знания языка. Определение шаблонов в заголовочных файлах необходимо только для неявного (implicit) инстанцирования. Но, помимо неявного, есть еще и явное инстанцирование (explicit instantiation). Шаблонные сущности можно не только определять в глубине единиц трансляции, но также и экспортировать из DLL.
Re: Ключевое отличие шаблона от макроса
Здравствуйте, Shmj, Вы писали:

S>Он должен быть целиком и полностью определен в заголовочном файле — нельзя разнести декларацию и дефиницию, как с обычной функцией или классом.


Вот это твое заблуждение, обусловленное недостатком знания языка. Определение шаблонов в заголовочных файлах необходимо только для неявного (implicit) инстанцирования. Но, помимо неявного, есть еще и явное инстанцирование (explicit instantiation). Шаблонные сущности (шаблоны функций и функции-члены шаблонных классов) можно не только определять в глубине единиц трансляции, но также и экспортировать из DLL.