d - D 中的固定大小位数组

标签 d bitarray compile-time-constant bitvector

如果我想要一个编译时大小的位数组(在堆栈上),我的替代方案是什么?

我在想类似的事情

struct Bitset(size_t nBits) {
    enum wsz = 8 * size_t.sizeof; // Word-Size.
    enum nBlocks = nBits/wsz + nBits % wsz * wsz;
    alias _bits this;
    size_t[nBlocks] _bits;
}

以及 bt 以及来自 core.bitop 的类似内容

能满足我的需求。

有人已经为此编写了一个模板以及一些不错的 bool 运算吗?

最佳答案

我只是检查是否 BitArray是否使用堆栈。如果没有,请获取源代码并修改它...

恕我直言,无论您是否希望将其放在堆栈上,都可以通过某种选项来改进 BitArray...

关于d - D 中的固定大小位数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19669071/

相关文章:

c - C 中的大位数组

c# - 标签的高效数据结构?

c++ - 在 C++ 编译时是否没有内置方法来计算功率?

operator-overloading - 在 D 中重载 bool 运算符

c# - 将 C# 字节转换为 BitArray

c - 静态初始化变量(在编译时)

c++ - integral_constant 的编译时 bool 运算?

templates - 内省(introspection)模板参数(尤其是模板别名参数)

signals - 如何处理或检测 D 中的系统信号?

while-loop - 如何在D中实现while循环?