range - Phobos-Range 兼容的固定维度向量

标签 range d linear-algebra fixed-size-types

在 D 中实现与 RandomAccessRange 兼容的固定维度向量的最聪明的方法是什么 interface在火卫一?我是否必须重新实现所有成员 opIndexlength 等,还是通过委托(delegate)、别名或模板 mixin 等更聪明的方法?我一直在 github D 项目上查看几个固定大小的向量结构,但似乎没有一个关心与 Phobos 范围兼容。 更新:刚刚读到容器应该是引用类型,所以我想这不是在 D 中执行此操作的方法,对吗?

最佳答案

如果您的向量具有连续的内部存储,那么您只需从 opSlice() 返回该数据的一部分即可:

struct Vector
{
    private real[4] data;

    auto opSlice() { return data[]; }
}

容器不必是引用类型,但使用 opSlice 的任何一种方式都是从容器获取范围的常用方法。

关于range - Phobos-Range 兼容的固定维度向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18427079/

相关文章:

javascript - 如何突出显示 DOM Range 对象的文本?

r - 对于给定标识符,按日期范围对行求和

sql - PostgreSQL 使数据以 5 为步长进入区间

mysql - 如何在D中正确导入mysql库?

d - `std.format.format!` 的纯版本?

oop - Dlang : why are constructors not inherieted?

ios - 将世界坐标转换为对象坐标

android - 如何在Android中获取一系列字符串?

matlab - MATLAB 是否优化 diag(A*B)?

math - 如何检查m n个向量是否线性独立?