Я реализую приложение с различными путями кода, которые должны быть выбраны один раз при запуске, а затем исправлены навсегда для этого выполнения - например, выбирая путь рендеринга D3D11 или D3D9.
Очевидно, я не хочу дублировать весь мой другой код.
Является ли наследование во время выполнения (без виртуального наследования) справедливым решением? Я не хочу тратить кучу производительности на виртуальные поиски, когда тип был исправлен давно. Не только это, но это заставляет меня нервничать, что функции не могут быть встроены и влияет ли это на RVO и NRVO и тому подобное. Я просто слишком обеспокоен этим?