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