Отдельные одноразовые пути кода - PullRequest
4 голосов
/ 24 декабря 2010

Я реализую приложение с различными путями кода, которые должны быть выбраны один раз при запуске, а затем исправлены навсегда для этого выполнения - например, выбирая путь рендеринга D3D11 или D3D9.

Очевидно, я не хочу дублировать весь мой другой код.

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

Ответы [ 2 ]

2 голосов
/ 25 декабря 2010

Я решил, что, поскольку число путей минимально, я бы скомпилировал их как DLL и загрузил, например, D3D9Main (), который будет компилироваться с использованием препроцессора для выбора типов во время компиляции.Гораздо проще, чем с помощью шаблонов, и гораздо быстрее / проще, чем с использованием наследования.

0 голосов
/ 24 декабря 2010

Вы можете использовать общие компоненты, описанные в «Современный дизайн C ++» , но я не уверен, что это то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...