Здравствуйте Андрей, Вы писали:
А>>Похоже, что надо искать другое решение, без темплейтов.....
А>Ты смешал ДВЕ проблемы: А>1. Реализация шаблонных классов и функций должна быть доступна всем файлам, в которых инстанцируются экземпляры шаблонов. Решение этой проблемы я тебе дал.
Это понятно.
А>2. Твой шаблон работать не будет по той причине, что препроцессор работает раньше компилятора, и он ничего не знает о твоих шаблонах. То есть в макрос RUNTIME_CLASS передается не имя класса Event, а буквально имя параметра шаблона T, а так как макрос RUNTIME_CLASS реализован довольно просто, он присобачивает к T префикс class и пытается найти определение этого класса. Так что у тебя два пути: или искать другое решение или написать свой RUNTIME_CLASS, который бы понимал шаблоны. А виртуальные деструкторы здесь ни при чем. К тому же ты еще и порядок параметров в своем шаблоне перепутал.
Это тоже понятно. Я и не говорил что это та же самая проблема — я говорил что возникает еще одна.
Спасибо за ответы. Я придумал как избавиться от шаблонов.