2016-01-19 52 views
0

我在其中包含下列代码我收到编译器错误,“无法识别的属性“结果”从蚊蚋4.4.0:为什么我会从gnat 4.4中获得“Unrecognized attribute'Result”?

pragma Postcondition (Kind (Create_Object'Result) = String_Type) ; 

我已经检查了GNAT参考手册(https://gcc.gnu.org/onlinedocs/gnat_rm/Pragma-Postcondition.html#Pragma-Postcondition)。它说杂注后置条件是在Ada 2012之前实施的,并且为了兼容性而保留。

我想知道为什么错误以及如何摆脱它。

任何人都可以提供一些指针?

谢谢。

+2

因此没有确切的评论,但我怀疑Gnat-4.4对于可靠地支持前置/后置条件还为时尚早。我建议至少升级到Gnat-4.9并使用Ada-2012。您使用的是哪个平台(有人可能会建议在哪个平台上找到更新的Gnat)是否存在将您绑定到Gnat-4.4的特定问题?有人可能会提出解决方案。 –

+0

我使用Xcode 3.0运行OS X 10.5。不确定Gnat-4.9会在我的旧Mac上运行或不运行。 –

+1

2011年末我在[Sourceforge](http://sourceforge.net/projects/gnuada/files/GNAT_GCC%20Mac%20OS%20X/)上发布了GCC 4.6,所以可能会有一些Ada2012的工作特性;但那是用于达尔文10,而且你运行的是达尔文9.也许GCC 4.7(为Lion,Darwin 11,OS X 10.7构建)运气更好?我无法检查这些功能,因为GCC 4.8之前的版本都没有在El Capitan(Darwin 15,OS X 10.11)上运行。 GCC 4.8似乎明白''结果'。 –

回答

1

您必须升级到Ada 2012编译器才能使用'Result属性。

相关问题