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