История изменений
Исправление deep-purple, (текущая версия) :
Для реализации конкретного солвера нужно отнаследовать базовый и перегрузить виртуальную ф-ю
Всё ещё не вижу необходимость проверять оверрайды в рантайме, тем более для виртуальных.
Сделать pure virtual и таким образом обязать имплементировать в потомках. А если нужно чтобы метод потомка не влиял на результат — так и писать ничего не делающей пустой заглушкой.
Наследников будет штук пять
Тем более не проблема.
Тогда вообще заведите в solver-е метод get_patcher, который будет возвращать либо указатель на реальную функцию, либо nullptr для случая, когда вам делать ничего не нужно.
Вон виш, eao197 об том же самом.
Исправление deep-purple, :
Для реализации конкретного солвера нужно отнаследовать базовый и перегрузить виртуальную ф-ю
Всё ещё не вижу необходимость проверять оверрайды в рантайме, тем более для виртуальных.
Сделать pure virtual и таким образом обязать имплементировать в потомках. А если нужно чтобы метод потомка не влиял на результат — так и писать ничего не делающей пустой заглушкой.
Наследников будет штук пять
Тем более не проблема.
Тогда вообще заведите в solver-е метод get_patcher, который будет возвращать либо указатель на реальную функцию, либо nullptr для случая, когда вам делать ничего не нужно.
Исходная версия deep-purple, :
Для реализации конкретного солвера нужно отнаследовать базовый и перегрузить виртуальную ф-ю
Всё ещё не вижу необходимость проверять оверрайды в рантайме, тем более для виртуальных.
Сделать pure virtual и таким образом обязать имплементировать в потомках. А если нужно чтобы метод потомка не влиял на результат — так и писать ничего не делающей пустой заглушкой.
Наследников будет штук пять
Тем более не проблема.