gpt4 book ai didi

ada - 类型转换和 if 表达式

转载 作者:行者123 更新时间:2023-12-05 03:17:35 26 4
gpt4 key购买 nike

this页,John Barnes 写道:

If the conditional expression is the argument of a type conversion then effectively the conversion is considered pushed down to the dependent expressions. Thus

X := Float(if P then A else B);

is equivalent to

X := (if P then Float(A) else Float(B));

那么为什么我不能在 GNAT 10.3.0 下编译以下程序?

procedure Main is
P : Boolean := True;
X : Float;
begin
X := Float (if P then 0.5 else 32);
end Main;
Compile
[Ada] main.adb
main.adb:5:35: expected a real type
main.adb:5:35: found type universal integer
gprbuild: *** compilation phase failed

最佳答案

因为你在编译器中发现了一个长期存在的错误! (GCC 12.1.0 中的行为相同)。

John Barnes 的理由是 AARM 4.5.7(10ff) .


感谢您提供真实代码和错误消息!

关于ada - 类型转换和 if 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74087195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com