是否有一种Ada等价物使函数未实现?
在.Net中,开发过程中的常见做法是逐步实现接口,因此并非所有接口功能都在前几轮开发中实现。这样的示例在C中如下所示:是否有一种Ada等价物使函数未实现?,ada,notimplementedexception,Ada,Notimplementedexception,在.Net中,开发过程中的常见做法是逐步实现接口,因此并非所有接口功能都在前几轮开发中实现。这样的示例在C中如下所示: public string FutureGetString() { // Not developed yet. throw new NotImplementedException(); } 然而,我还没有弄明白如何在Ada中实现等效。我想开发出一个包规格的身体,同时保持对一些功能的大门打开。有没有一种方法可以立即抛出异常?现在,我有以下内容,这给了我一个编译器
public string FutureGetString()
{
// Not developed yet.
throw new NotImplementedException();
}
然而,我还没有弄明白如何在Ada中实现等效。我想开发出一个包规格的身体,同时保持对一些功能的大门打开。有没有一种方法可以立即抛出异常?现在,我有以下内容,这给了我一个编译器错误,函数体中缺少返回语句
函数未实现输入:在整数中返回布尔值为
pragma未引用输入;
开始
pragma Compile_Time_Warning True,Not_Implemented尚未实现。;
返回未执行的raise Program_错误,尚未执行。;
未实施的目的;
我看过一位高级AdaCore工程师推荐的:
function NotImplemented ( Input : Integer ) return Boolean is
begin
raise Program_Error;
return NotImplemented (Input);
end;
我想知道编译器是否会警告无限递归,但我的编译器似乎对此并不满意-函数返回时缺少表达式。2016年2月发布的技术勘误表1将raise表达式添加到Ada 2012中,因此,只有最新的编译器才会支持这一点,因为代码使用Ada2012特性,一个raise表达式,它可以有任何类型,我认为我们正在使用gnat 6.4,所以理论上它应该支持2012。我一定是在什么地方把它配置错了。-gnat2012通常是你用GNAT选择Ada 2012的方式。GNAT似乎无法区分Ada 2012和Ada 2012/TC1。
function NotImplemented ( Input : Integer ) return Boolean is
begin
raise Program_Error;
return NotImplemented (Input);
end;