我正在尝试实现一个分配器,它允许我使用带有 STL 类型的boost::interprocess::offset_ptr的“花哨”指针。
\n
作为一个独立的模板,指针本身工作得很好,但我很难让它与std::vector或boost::containers::vector
\n
我为指针实现的事情列表是:
\n
template<class T>\nclass OffsetPtr ...\n
Run Code Online (Sandbox Code Playgroud)\n
\n- 来自 T*、T& 的构造函数
\n- 比较 <=、<、!=、==、>=、>=
\n- 解引用运算符* & 运算符->
\n- 任务
\n- 指针算术 ++、--、-、+、+=、-=
\n- 显式运算符 bool () const;
\n- 布尔运算符!() 常量;
\n- 使用 iterator_category = std::random_access_iterator_tag;
\n- 从 OffsetPtr(T) -> OffsetPtr(const T) 转换
\n- 重新绑定从 OffsetPtr(T) 到 OffsetPtr(U) 的转换
\n- 移动语义 - 尽管我认为这种类型实际上应该是不可移动的。
\n- 指针特征
\n- 随机访问迭代器要求
\n- 迭代器特征
\n- 原始指针和我的奇特指针之间的转换
\n- 与 nullptr 和 nullptr_t 的比较和转换
\n …