Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates 是否有我可以让GDC给我的源代码与所有模板展开,但没有其他工作完成?_Templates_D_Gdc - Fatal编程技术网

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似乎没有这样的选择。