C ++参考提到了一个名为fancy pointers的概念。我从最近一次投票严重,后来被删除的问题中了解到了他们的存在。
这个定义模糊不清:
当成员类型指针不是原始指针类型时,它通常被称为"花式指针"。
他们的用例示例是:
花式指针的一个例子是映射地址无关 指针boost :: interprocess :: offset_ptr,这使得它成为可能 在共享内存中分配基于节点的数据结构,例如std :: set 和内存映射文件映射到每个地址的不同地址 处理。可以独立于分配器使用花式指针 通过类模板std :: pointer_traits。
提供它们
我不理解这个解释。创建花式指针的语法是什么?为什么我不能在这种情况下使用常规指针?
答案 0 :(得分:11)
花哨的指针只是一个像指针一样但不是指针的术语。以一个迭代器为例。几乎所有迭代器都是自定义类类型,但它们的行为就像一个指针(有时会有一些限制,你不能完成指针支持的所有操作,因为它们不提供随机访问,但这是功能的一部分。)
换句话说:一个像指针一样的抽象是一个花哨的指针。