在编译时生成函数
Generate functions at compile-time
有什么方法可以在 Ada 中在编译时生成函数吗?我想生成一个存储函数指针的操作码 table。我目前的解决方案是存储包含可以执行的过程的对象,但如果可能我宁愿不分配。
没有
但是使用领域特定语言 (DSL) 从中生成 Ada 并没有错。这种情况经常发生。
您可以使用通用过程来获得通用主体,只需提供您需要的任何唯一参数即可
with Ada.Text_IO; use Ada.Text_IO;
procedure Hello is
generic
-- some sort of parameters
Value : Integer;
procedure Do_Op;
procedure Do_Op is
begin
Put_Line(Integer'Image(Value));
end Do_Op;
procedure Op1 is new Do_Op(1);
procedure Op2 is new Do_Op(2);
procedure Op3 is new Do_Op(3);
begin
Put_Line("Hello, world!");
Op1;
Op2;
Op3;
end Hello;
有什么方法可以在 Ada 中在编译时生成函数吗?我想生成一个存储函数指针的操作码 table。我目前的解决方案是存储包含可以执行的过程的对象,但如果可能我宁愿不分配。
没有
但是使用领域特定语言 (DSL) 从中生成 Ada 并没有错。这种情况经常发生。
您可以使用通用过程来获得通用主体,只需提供您需要的任何唯一参数即可
with Ada.Text_IO; use Ada.Text_IO;
procedure Hello is
generic
-- some sort of parameters
Value : Integer;
procedure Do_Op;
procedure Do_Op is
begin
Put_Line(Integer'Image(Value));
end Do_Op;
procedure Op1 is new Do_Op(1);
procedure Op2 is new Do_Op(2);
procedure Op3 is new Do_Op(3);
begin
Put_Line("Hello, world!");
Op1;
Op2;
Op3;
end Hello;