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