Re[7]: Инстанцирование шаблонных функций. Ошибка при линковк
От: Аноним  
Дата: 29.09.03 14:55
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

L_L>У вижуала есть еще одна интересная особенность — он позволяет явно инстанцировать несуществующие функции — что и продемонстрировал твой пример.

Думаю, здесь всё честно — попросили инстанциировать, значит он её сгенерил. Она легла в соответствующий obj файл. Что значит несуществующие?

L_L>Кроме того, мне кажется, что писать явное инстанцирование получше, чем макросы и if(0)....

Эти вызовы разбросаны по всему проекту, и мне не очень хочется вручную вычислять, какие функции и с какими параметрами мне надо инстанциировать. К тому же сам вызов содержится внутри макроса. Проще вставить if(0) { вызов функции } и пусть компилятор потом ищет, на кого ссылались. Вставить в макрос явное инстанциирование нельзя — макрос используется внутри функций и template там писать нельзя.
Единственный минус — пришлось сделать два типа макросов — там где функтор это функция и там где функтор это объект. Придумать для них код, годный и для функции и для объекта и вызывающий инстанциирование функции я не смог.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.