理想情况下,我希望能够将(非常重复的)C/C++代码添加到我的实际代码中,但是在编译时,代码可以来自蟒蛇脚本的stdout,就像使用宏一样.
例如,假设我想拥有依赖于给定类的公共属性的函数,能够在我的C++代码中编写以下内容将是一件幸事:
generate_boring_functions(FooBarClass,"FooBarClass.cpp")
Run Code Online (Sandbox Code Playgroud)
使用传统方法可行吗?或者我必须破解Makefile和临时源文件?
谢谢.
您很可能需要稍微调整一下 Makefile。generate_boring_functions编写一个(Python)脚本来读取每个源文件作为额外的预处理步骤,用正确的代码替换(或任何其他脚本宏)的实例(可能只需使用generate_boring_functions.py正确的参数进行调用)是很容易的,并且通过标准输入将源代码发送到编译器,从而绕过对临时文件的需求。
该死,现在我想做这样的东西。
编辑:像这样的规则,卡在 makefile 中,可用于处理额外的构建步骤。这是未经测试的,只是为了完整性而添加的。
%.o : %.cpp
python macros.py $< | g++ -x cpp -c - -o $@
Run Code Online (Sandbox Code Playgroud)