问题标签 [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.

0 投票
2 回答
127 浏览

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;

这可能会导致约束错误,但与标量计算(取决于机器)相比,它更有可能导致一些准确性损失(因为实数的表示方式)。

0 投票
0 回答
112 浏览

hashmap - 元素如何存储在 Ada 的 Hashmap 中?

我想知道 Element_Type 对象是按原样存储在 Ada 的 Hashmap 中(普通的 Hashmap,不定的或有界的),还是只存储指向真实 Element_Type 对象实例的指针,也就是说,我想确保元素没有被复制到哈希图中。

0 投票
2 回答
111 浏览

ada - 在 Ada 中将空枚举传递给泛型的惯用方式

我正在用枚举实例化一个通用包,以访问多个值之一并在子程序重载中使用。我想要一个定义明确的、编译时检查的值集,我可以使用和查找。

描述空枚举的惯用语是什么?

有没有办法来描述这个,使得 Beer 是一个没有值的枚举,所以Pour永远不能用 a 来调用Beer

0 投票
2 回答
131 浏览

ada - 在 Ada 中返回一个包含一个元素的数组

我正在尝试返回一个只有一个函数元素的数组。我尝试了几种口味,但仍然找不到它想要我做的事情:

0 投票
1 回答
235 浏览

ada - 防止在 GNAT 中使用 Ada 202x

GNAT 允许以下代码,因为它Random(Generator, First, Last)是在运行时实现的,但它不是 Ada 2012 的一部分。我是否可以导致它产生编译错误,因为它不应该可用?

这是我的 gpr 文件: