0

假设我在主 cpp 文件中有一组指令,允许实例化我的二进制文件,这些二进制文件使用 typedef 和预处理器指令实现具有给定类型的模板算法,以便在编译前选择类型:

 #ifdef MS1
     typedef  MSVariableInterface1 InterfacorType;
  #else
       #ifdef MS2
           typedef  MSVariableInterface2 InterfacorType;
       #endif
  #endif

int main()
 {...        //use InterfacorType as the type for template

我希望我的 cmakelists 使用不同的模板实例自动编译代码,知道预处理器变量的不同可能值。你知道我该怎么做吗?

此外,我猜这不是解决问题的正确方法,您是否有另一个建议来“展开”(可选多)模板代码的不同实例,给定可以采用每个模板的类型集。这样的解决方案将允许我创建一个二进制文件来处理所有情况(带有允许选择感兴趣的实例的参数),而不是为每个实例创建一个二进制文件。谢谢!

4

1 回答 1

0

您可以使用add_definitions启用它们:

add_definitions(-DMS1)
于 2012-12-09T06:08:39.990 回答