问题标签 [ada2012]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ada - Ada:在用户定义的向量运算符中提升中间值的最佳方式是什么?
让我首先提供一些上下文,希望它能让问题更清楚:我正在从我希望操作的硬件接收字节向量数据。由于大小和时间限制,我不希望将日期转换为更大的大小。我想允许计算的中间值超出字节范围。这不是标量的问题(中间值保存在寄存器中,编译器不会为中间值发出约束错误)。
但是,在使用用户定义的运算符时,它更加棘手。我们可以将结果提升为更大的大小,但随后分配回原始类型将需要显式转换(子类型不能具有混合大小)。例如,在第 24 行下面的代码中将变为Z := To_Point((X + Y) / 2);
It is a solution,但我希望找到一个不需要添加“To_Point”功能的解决方案。
我在 Ada.Numerics 中查看了向量的实现,它使用的是实数值,并且不提升中间值,例如:
function "+" (Left, Right : Real_Vector) return Real_Vector;
这可能会导致约束错误,但与标量计算(取决于机器)相比,它更有可能导致一些准确性损失(因为实数的表示方式)。
hashmap - 元素如何存储在 Ada 的 Hashmap 中?
我想知道 Element_Type 对象是按原样存储在 Ada 的 Hashmap 中(普通的 Hashmap,不定的或有界的),还是只存储指向真实 Element_Type 对象实例的指针,也就是说,我想确保元素没有被复制到哈希图中。
ada - 在 Ada 中将空枚举传递给泛型的惯用方式
我正在用枚举实例化一个通用包,以访问多个值之一并在子程序重载中使用。我想要一个定义明确的、编译时检查的值集,我可以使用和查找。
描述空枚举的惯用语是什么?
有没有办法来描述这个,使得 Beer 是一个没有值的枚举,所以Pour
永远不能用 a 来调用Beer
?
ada - 在 Ada 中返回一个包含一个元素的数组
我正在尝试返回一个只有一个函数元素的数组。我尝试了几种口味,但仍然找不到它想要我做的事情:
ada - 防止在 GNAT 中使用 Ada 202x
GNAT 允许以下代码,因为它Random(Generator, First, Last)
是在运行时实现的,但它不是 Ada 2012 的一部分。我是否可以导致它产生编译错误,因为它不应该可用?
这是我的 gpr 文件: