2016-01-19 23 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屬性。

相關問題