реализации virtual template methods?
Да какие заметки, из определения virtual и template это явно следует. template, грубо говоря, позволяет инстанцировать дополнительные методы из разных единиц трансляции, а virtual требует знания интерфейса в момент компиляции любого отдельно взятого TU. Если взять самую популярную реализацию виртуальных функций (vtable), то на её примере - табличка должна быть сформирована однозначным образом.
А какие ещё бывают реализации для virtual?
ну как в питоне например через хэш таблицу
так эта та же виртуальная таблица, просто на рантайме построенная
Разве механизм который позволит реализовать подобное нельзя сделать? Возможно же сгенерить доп. методы в vtable, а потом просто делать выборку?
Как сгенерить доп. методы в vtable, если компиляция двух разных TU независима?
По дизайну темплейтов нельзя. Это компайл-тайм конструкт, компилятору надо знать все инстанцирования чтоб сгенерить код. Сколько доп методов сгенерить? Во внешней библиотеке ктото унаследовался от твоего класса и оверрайднул метод. Как ты сгенеришь базовый метод для этого типа? У тебя там больше кода нет
Перегрузка же работает. Если я что-то не так понимаю, отправьте пожалуйста какие-то рефы на инфу, изучить хочу.
перегрузка - это раннее связывание, а не позднее
Перегрузка это физически существующий код, а шаблон это считай макрос, пока метод не вызовут (передав шаблонные параметры), кода не будет.
Ты сначала попробуй сделать, чтобы не надо было подключать определение шаблонных методов
а vtable не хеш разве?
Скорее всего просто функции по номерам
это просто массив функций. в питоне это словарь название-функция.
Обсуждают сегодня