LINUX.ORG.RU

История изменений

Исправление deep-purple, (текущая версия) :

Для реализации конкретного солвера нужно отнаследовать базовый и перегрузить виртуальную ф-ю

Всё ещё не вижу необходимость проверять оверрайды в рантайме, тем более для виртуальных.

Сделать pure virtual и таким образом обязать имплементировать в потомках. А если нужно чтобы метод потомка не влиял на результат — так и писать ничего не делающей пустой заглушкой.

Наследников будет штук пять

Тем более не проблема.

Тогда вообще заведите в solver-е метод get_patcher, который будет возвращать либо указатель на реальную функцию, либо nullptr для случая, когда вам делать ничего не нужно.

Вон виш, eao197 об том же самом.

Исправление deep-purple, :

Для реализации конкретного солвера нужно отнаследовать базовый и перегрузить виртуальную ф-ю

Всё ещё не вижу необходимость проверять оверрайды в рантайме, тем более для виртуальных.

Сделать pure virtual и таким образом обязать имплементировать в потомках. А если нужно чтобы метод потомка не влиял на результат — так и писать ничего не делающей пустой заглушкой.

Наследников будет штук пять

Тем более не проблема.

Тогда вообще заведите в solver-е метод get_patcher, который будет возвращать либо указатель на реальную функцию, либо nullptr для случая, когда вам делать ничего не нужно.

Исходная версия deep-purple, :

Для реализации конкретного солвера нужно отнаследовать базовый и перегрузить виртуальную ф-ю

Всё ещё не вижу необходимость проверять оверрайды в рантайме, тем более для виртуальных.

Сделать pure virtual и таким образом обязать имплементировать в потомках. А если нужно чтобы метод потомка не влиял на результат — так и писать ничего не делающей пустой заглушкой.

Наследников будет штук пять

Тем более не проблема.