c 11 – 单独的一次性代码路径

我正在实现一个具有不同代码路径的应用程序,这些代码路径应在启动时选择一次,然后永久固定以执行该执行 – 例如,选择D3D11或D3D9渲染路径.

显然我不想复制我的所有其他代码.

运行时继承(没有虚拟继承)是一个公平的解决方案吗?在很久以前修复类型时,我不想浪费大量性能进行虚拟查找.不仅仅是这样,而且让我感到紧张的是,功能无法内联,以及它是否会影响RVO和NRVO等.我只是过分担心这件事吗?

最佳答案 我决定,因为路径的数量是最小的,我将它们编译为DLL并加载例如D3D9Main(),它将使用预处理器进行编译,以便在编译时选择类型.比使用模板容易得多,比使用继承更快/更容易.

点赞