C++11 单独的一次性代码路径

C++11 单独的一次性代码路径,c++11,C++11,我正在用不同的代码路径实现一个应用程序,这些代码路径在启动时选择一次,然后在执行时永久固定——例如,选择D3D11或D3D9呈现路径 显然,我不想复制所有其他代码 运行时继承(无虚拟继承)是公平的解决方案吗?我不想在很久以前类型被修复时浪费大量的性能进行虚拟查找。不仅如此,它还让我感到紧张,因为函数不能内联,它是否会影响RVO和NRVO等等。我是不是太担心这个问题了?您可以使用中描述的通用组件,但我不确定这是否是您想要的组件。我决定,由于路径的数量非常少,所以我会将它们编译为DLL并加载,例如D

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

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


运行时继承(无虚拟继承)是公平的解决方案吗?我不想在很久以前类型被修复时浪费大量的性能进行虚拟查找。不仅如此,它还让我感到紧张,因为函数不能内联,它是否会影响RVO和NRVO等等。我是不是太担心这个问题了?

您可以使用中描述的通用组件,但我不确定这是否是您想要的组件。

我决定,由于路径的数量非常少,所以我会将它们编译为DLL并加载,例如D3D9Main(),这将使用预处理器在编译时选择类型来编译。比使用模板容易得多,比使用继承快得多。

?这怎么不是运行时继承呢?你可以用模板执行策略模式,@oluis:那么你想让我为整个程序模板吗?这将导致的混乱程度令人难以置信——相信我,我已经试过了。