Templates 是否有我可以让GDC给我的源代码与所有模板展开,但没有其他工作完成?
假设我有一个文件Templates 是否有我可以让GDC给我的源代码与所有模板展开,但没有其他工作完成?,templates,d,gdc,Templates,D,Gdc,假设我有一个文件foo.d,它实例化了一组模板。有没有什么方法可以让GDC(特别地)给我foo.d,并实例化它的所有模板,但其他什么都不做?GCC-E选项显然不起作用,因为C预处理器没有扩展D模板,但我不确定我应该尝试什么选项(或者如果存在的话)。你所说的扩展模板到底是什么意思?如果您正常编译它,它会在目标文件中实例化它们,但无法将它们作为源代码输出。。。实际上,有一种方法,你可以修改编译器来添加一个类似的选项,解析并语义分析程序,然后将AST作为代码输出。。。这其实是一个非常好的主意。@Ada
foo.d
,它实例化了一组模板。有没有什么方法可以让GDC(特别地)给我foo.d
,并实例化它的所有模板,但其他什么都不做?GCC-E
选项显然不起作用,因为C预处理器没有扩展D模板,但我不确定我应该尝试什么选项(或者如果存在的话)。你所说的扩展模板到底是什么意思?如果您正常编译它,它会在目标文件中实例化它们,但无法将它们作为源代码输出。。。实际上,有一种方法,你可以修改编译器来添加一个类似的选项,解析并语义分析程序,然后将AST作为代码输出。。。这其实是一个非常好的主意。@AdamD.Ruppe:我的意思就是:我想获取一个源文件foo.d
,然后运行它,输出另一个源文件bar.d
,例如bar.d
与foo.d
相同,但是,foo.d
中的所有模板都以源代码形式实例化。但如果还没有这样的工具,我可能应该写一个。DMD有一个-allinst
选项,应该实例化所有模板并生成源代码,但我无法让它做我认为它可以做的事情。也许你会有更好的运气。GDC似乎没有这样的选择。