在最近的AdaCore Gem中有一个声明
Finalize 的实现稍微复杂一些:Ada 参考手册指出 Finalize 过程应该始终是幂等的。Ada 编译器可以自由地对同一个对象多次调用 Finalize,尤其是在发生异常时。
我需要测试一个私人控制的类型,
type T is private;
private
type T is new Ada.Finalization.Controlled with ...
我可以更改源以使类型明显受控
type T is new Ada.Finalization.Controlled with private;
然后打电话Finalize (My_T);
(甚至My_T.Finalize
?);但是有什么方法可以在不更改被测软件的情况下导致多个最终确定?