c++ - 是否有使用自定义 *alloc/*free 函数对的 std::allocator_traits 示例实现?
问题描述
我的目标是利用特定的分配/释放函数对(即 Win32 中的 LocalAlloc/LocalFree)创建一个 std::allocator 类型。有人建议我对 std::allocator 模板类进行子类化,但它只是包装了 std::allocator_traits。我想继承 std::allocator_traits 因为它是较小的类型,并且 std::allocator 包装了它。
我找到了std::allocator_traits/cppreference,但现在还没有它的示例实现。
解决方案
您没有“子类化” allocator_traits
(或任何 C++“特征”)类型。如果您需要覆盖默认特征行为,则创建特征类型的特化。由于allocator_traits
将分配器作为模板参数与它一起使用,这意味着您将创建一个分配器类型。
或者简单地说,创建分配器类型不是可选的。它不必(并且可能不应该)派生自std::allocator
,但您必须创建一个分配器类型才能创建自己的分配器。
推荐阅读
- sql - 如何将时间总和作为浮点数
- verilog - 使用带有 create_clock 和 create_generate_clock 的 Vivado 工具
- windows - 我可以在一个窗口中拥有多个 Powershell 控制台吗?
- reactjs - 在 React Native 应用程序之间共享数据库
- angular - 以角度显示数据时获取[对象对象]
- php - 添加刀片 php 页面的链接
- php - 想要在 laravel 上返回 Value json
- html - 带顶栏的 Bootstrap 响应式导航
- hyperledger-fabric - 关于hyperledger fabric MSP设置的问题
- sql-server - 收到错误“找不到为 :r 命令指定的文件”