D中的Ada样式范围类型 阅读了有关艾达和C++的有趣文章,知道D支持CTFE和函数的常数参数特化,我想知道Ada Style Range类型是否比C++更容易/有效地实现在D中。也许有人已经写了这样一个图书馆吗
如果这些范围能够在D中有效地实施并且对开发人员友好,那么它可以被用作在对确定性和类型和内存安全(如果D已经发光)有要求的行业(如航空电子和汽车)中建立D的促进者。因此,D将获得更多的开发人员兴趣和更强大的财务支持。使用标量(有界)变量作为模板很容易,事实上我记得我看到有人已经做过的代码。不幸的是,我不记得在哪里见过它。也就是说,没有必要让它成为语言的一部分,而是成为标准库的一部分 (编辑:亚当提醒我代码:) 范围更广的概念在Andrei的文章中有很好的解释-。 这种类型的范围现在是D的核心概念。D的切片是最强大的范围RandomAccessRange的实现 例如:D中的Ada样式范围类型 阅读了有关艾达和C++的有趣文章,知道D支持CTFE和函数的常数参数特化,我想知道Ada Style Range类型是否比C++更容易/有效地实现在D中。也许有人已经写了这样一个图书馆吗,d,compile-time,compile-time-constant,range-types,D,Compile Time,Compile Time Constant,Range Types,如果这些范围能够在D中有效地实施并且对开发人员友好,那么它可以被用作在对确定性和类型和内存安全(如果D已经发光)有要求的行业(如航空电子和汽车)中建立D的促进者。因此,D将获得更多的开发人员兴趣和更强大的财务支持。使用标量(有界)变量作为模板很容易,事实上我记得我看到有人已经做过的代码。不幸的是,我不记得在哪里见过它。也就是说,没有必要让它成为语言的一部分,而是成为标准库的一部分 (编辑:亚当提醒我代码:) 范围更广的概念在Andrei的文章中有很好的解释-。 这种类型的范围现在是D的核心概念。
import std.stdio;
import std.algorithm;
void main()
{
int[] values = [ 1, 20, 7, 11 ]; // values is a RandomAcessRange
writeln(filter!(value => value > 10)(values));
}
好书:
我编写了一些小代码,可以使用溢出检查来执行整数的最小值和最大值:
不过,这只是一个概念证明,我怀疑它会表现得很好,但如果内联的话可能会表现得很好。不是那种类型的范围,而是一个有界(标量)变量(像一个带最小值和最大值的实数),谢谢Adam-我记得我在某处见过它!:)这正是我心目中的代码。:)这可以扩展到浮点类型(带/或不带汇编辅助)吗?是的,应该可以。我不知道这里是否有类似asm检查的浮点溢出标志,但是我们可以做一些事情,比如如果result
返回q
意味着什么?我看不到符号q
的定义/声明。我想我们需要检查无穷大或最大浮点值,对吗?