Skip to content

类型与视图

公开参考必须先从角色讲起,因为一旦 ownership 与 borrowing 模糊,后面的契约阅读就会失焦。

公共类型角色

表面拥有关系契约阅读方式
bit_block<Bits>拥有固定宽度存储对象,负责位宽、布局与 word 级身份。
bit_view借用可变对现有存储提供非拥有、可变窗口;不暗示 ownership 转移。
const_bit_view借用只读对现有存储提供非拥有、只读窗口,用于观察、比较与算法输入。
<bitcal/bitcal.hpp>稳定入口公开表面的唯一支持 include seam。

ownership 与 borrowing 契约

读者应该无需猜测就能得到这些结论:

  • ownership 属于 bit_block<Bits>
  • borrowing 属于 bit_viewconst_bit_view
  • borrowed view 是算法的正常输入,而不是低一级的适配器;
  • include 建议应保持简单:除非你在维护内部实现,否则就使用 <bitcal/bitcal.hpp>

值得长期保留的契约说明

  • 位宽是公开叙事的一部分,因为 BitCal 当前明确采用 fixed-width 取向。
  • bit_block<Bits> 应按位宽使用合适的存储对齐,而不是把同一套 x86 对齐强行套到所有宽度上。
  • borrowing 需要被写到足够清楚,确保 aliasing 与 mutability 问题能在 Reference 层被回答。
  • equals() 比较的是完整 view 范围:word_count() 不同就必须判定为不相等,而不是把较短前缀当成匹配。
  • detail 头文件可以存在,但并不会自动成为对外承诺。

非承诺项

本页并不承诺:

  • 当前内部存储布局构成稳定 ABI;
  • 每个中间辅助类型都值得进入公开文档;
  • 旧的单体公开形态仍是推荐心智模型。

Whitepaper-first technical documentation for BitCal vNext.