gpt4 book ai didi

generics - 如何使通用形式参数别名

转载 作者:行者123 更新时间:2023-12-05 09:33:24 29 4
gpt4 key购买 nike

我正在尝试像这样声明一个形式参数:

generic
S : aliased String;
package My_Package is
Str : access constant String := S'Access;
end;

但是这段代码无法编译。为什么我不能让 S 别名?

最佳答案

简单的答案是:因为 Ada 标准不允许这样做。至于为什么不允许,我不知道;我不知道有任何关于这个问题的讨论。

为什么要这样做?

您的示例代码当然在另一个方面也不正确:Str 的初始化应该提供一个访问值,而不是像 S 这样的字符串值。但是您不能使用 S'Access,因为 S 没有别名。

通过 GNAT,您可以使用 S'Unrestricted_Access,即使正式对象没有别名。如果你这样做,你应该对正式对象使用“in out”模式;这将使它像重命名一样工作,或多或少等同于按引用传递。

关于generics - 如何使通用形式参数别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67322558/

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