花式指针是什么样的?

时间:2017-04-18 12:24:57

标签: c++ pointers

C ++参考提到了一个名为fancy pointers的概念。我从最近一次投票严重,后来被删除的问题中了解到了他们的存在。

这个定义模糊不清:

  

当成员类型指针不是原始指针类型时,它通常被称为"花式指针"。

他们的用例示例是:

  

花式指针的一个例子是映射地址无关   指针boost :: interprocess :: offset_ptr,这使得它成为可能   在共享内存中分配基于节点的数据结构,例如std :: set   和内存映射文件映射到每个地址的不同地址   处理。可以独立于分配器使用花式指针   通过类模板std :: pointer_traits。

提供它们

我不理解这个解释。创建花式指针的语法是什么?为什么我不能在这种情况下使用常规指针?

1 个答案:

答案 0 :(得分:11)

花哨的指针只是一个像指针一样但不是指针的术语。以一个迭代器为例。几乎所有迭代器都是自定义类类型,但它们的行为就像一个指针(有时会有一些限制,你不能完成指针支持的所有操作,因为它们不提供随机访问,但这是功能的一部分。)

换句话说:一个像指针一样的抽象是一个花哨的指针