为什么``polymorphic_allocator`取一个emore _ resource`指针''而不是参考
Why does `polymorphic_allocator` take a `memory_resource` pointer and not a reference?
C 17标准说:
[mem.poly.allocator.ctor]
polymorphic_allocator(memory_resource* r);
要求:
r
是非null。效果:将
memory_rsrc
设置为r
。投掷:没有。
[注意:此构造器提供了
memory_resource*
的隐式转换。 - end Note ]
如果"需要" 子句提到 r
必须是非null?
memory_resource*
而不是memory_resource&
有什么意义彭博风格的指南鼓励接受将被指针而不是参考突变的参数,以便呼叫者侧的及时和变异成为突变的视觉标记。但是,标准中没有这样的先例。
r
被视为指针而不是参考的原因是什么?
见pmr
的标准化,彭博参与度重大,因为该公司使用多态分配器模型。
n3916:
请注意,内存 - 资源库的设计是为了使
ShoppingList
构造函数接受A Pointer 对memory_resource
而不是参考对memory_resource
。据指出,一种常见的做法是在无合同指针中使用参考而不是指示。但是,有一种更具吸引力的做法,即避免通过参考来处理对象并存储其地址的构造函数。我们还希望避免通过非企业参考,因为通常也被视为不良习惯(除了超载操作员除外(。
相关文章:
- 我可以有一个 ELI5 作为参考和指针以及何时使用它们吗?
- 类的方法和对象。参考?智能指针?简单的初始化?
- 我正在学习C++,我不能使用指针访问参考吗?(举个例子)
- 使用指针向量到参考向量是非法的吗?
- 函数参数绑定通过参考与传递指针传递数组的规则
- 参考参考static_cast的成本和指向指针static_cast的指针
- 函数采用原始指针试图通过错误msg中概述的参考来接受指针
- 为什么即使传递给函数作为参考,指针也未被分配
- 为什么通用参考概念不适用于函数指针的地图插入
- 是指代指针正交的参考文献
- 超载函数既不按值,也不是通过参考来对象,而是将撤销的指针换成对象
- 从参考中获取的指针可以在定义明确的C 中取无效
- 指针与参考示例,在什么情况下更好
- 为什么要拿参考的地址给我一个第二等级的指针
- 如何提升::序列化指针和参考
- 在范围外丢失指针参考
- 将std ::向量作为指针参考
- 从指针参考C 创建一个新对象
- 从基本指针/参考调用正确的免费功能
- 在操作员过载的情况下处理悬空指针/参考