c ++模板实例化

时间:2012-12-06 15:17:21

标签: templates cmake template-meta-programming

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

您可以使用add_definitions启用它们:

add_definitions(-DMS1)