Re[4]: derived templates doesn't link in Visual C++ 6.0
От: Martyn2000  
Дата: 12.11.01 15:24
Оценка:
Здравствуйте Андрей, Вы писали:

А>>Похоже, что надо искать другое решение, без темплейтов.....


А>Ты смешал ДВЕ проблемы:

А>1. Реализация шаблонных классов и функций должна быть доступна всем файлам, в которых инстанцируются экземпляры шаблонов. Решение этой проблемы я тебе дал.

Это понятно.

А>2. Твой шаблон работать не будет по той причине, что препроцессор работает раньше компилятора, и он ничего не знает о твоих шаблонах. То есть в макрос RUNTIME_CLASS передается не имя класса Event, а буквально имя параметра шаблона T, а так как макрос RUNTIME_CLASS реализован довольно просто, он присобачивает к T префикс class и пытается найти определение этого класса. Так что у тебя два пути: или искать другое решение или написать свой RUNTIME_CLASS, который бы понимал шаблоны. А виртуальные деструкторы здесь ни при чем. К тому же ты еще и порядок параметров в своем шаблоне перепутал.


Это тоже понятно. Я и не говорил что это та же самая проблема — я говорил что возникает еще одна.

Спасибо за ответы. Я придумал как избавиться от шаблонов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.