是否有固定大小分配器的优雅 C++ 实现?

2024-01-03

我认为如果必须包含的头文件数量尽可能少,C++ 库就是“优雅的”。

我知道已经存在固定大小的分配器,例如Loki::SmallObjectAllocator and boost::pool。虽然两者都很优秀,但我认为它们不够优雅,也不容易无缝集成到项目中。

大多数时候,我只需要 boost 库的一小部分,但我必须在我的机器上安装整个库。例如,如果我想使用 boost::pool,我希望只包含ONE头文件boost_pool.h工作完成了。因为我认为固定大小的分配器不应该如此依赖于太多其他组件。在我看来,理想的代码应该如下所示:

#include <boost_pool.h>

int main()
{
   boost::pool<int> p;
   int* v = p.allocate();
}

有这样的图书馆吗?


欢迎您来到mine http://howardhinnant.github.io/stack_alloc.html。优雅与否,你可以决定。但它只是一个短标头,仅依赖于几个小的标准标头。该分配器满足 C++11 分配器要求,这是 C++03 分配器要求的子集。如果需要,您可以随时添加 C++03 样板。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有固定大小分配器的优雅 C++ 实现? 的相关文章

  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 在 nHibernate 关系中使用实体的 Lite 版本?

    在某些情况下 出于性能原因 创建一个实体的轻量级版本 指向同一个表 但映射的列较少 这是一个好主意吗 例如 如果我有一个包含 50 列的联系人表 并且在一些相关实体中 我可能对 FirstName 和 LastName 属性感兴趣 那么创建
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 还有一个无法加载文件或程序集“EntityFramework”

    现在 我保证我已经用谷歌搜索过这个 堆栈溢出大约有 4 或 5 个解决方案来解决这个问题 尽管如此 它们似乎都不起作用 我正在将 EntityFramework 5 4 4 与 MVC 3 项目一起使用 过去这工作得很好 但自从我打开该项目
  • UITextField SecureEntryText 颜色更改

    我有一个子类UITextField我将文本颜色设置为白色 我将此子类用于电子邮件字段和密码字段 void drawRect CGRect rect super drawRect rect self clearButtonMode UITex
  • 基于 Javascript 的重定向:会损害 SEO 吗?

    我最近实施了一项修复 根据用户是否启用了 JavaScript 来创建单独的登陆页面 基本上它的工作方式是这样的 默认页面是没有 javascript 的 HTML 页面 网站的基本版本 登陆后 有一个脚本显示如果启用了 javascrip
  • 如何使用盆地跳跃写入参数范围?

    我很难在其中写入参数的界限basinhopping x0 a b c a 0 100 b 0 0 100 c 0 10 from scipy optimize import basinhopping minimizer kwargs met
  • 使用 clang 内置函数与标准函数的优点

    Clang 和 GCC 定义了一堆内置函数 我将在这里使用余数的示例 builtin sqrt x 然而 标准 C99 定义了以下内容math h sqrt x clang 为已经存在的方法定义内置函数有什么意义 我本以为常见的数学函数 例
  • 使用函子派生类函数的广义新类型

    我正在开发一个表示键 值映射的类 并且我有一个基本上类似于alterF https hackage haskell org package containers 0 5 11 0 docs Data Map Strict html v al
  • 小数或空白的正则表达式

    很抱歉这个可能很愚蠢的问题 但我正在尝试整理一个正则表达式 该表达式允许 小数点前有 1 或 2 个数字 小数点后有 0 6 个数字 但是 如果需要的话 我还需要允许该字段为空 有效示例 0 952321 1 20394 12 12 25
  • 如何使用 start 在 alpine docker 容器中加载 shell 别名

    我编写了一个 DOCKER 文件 它使用私有改编的 alpine 图像作为图像 其中包含 nginx 服务器 注意 alpine 使用 zsh 而不是 bash 当我在容器中工作时 我喜欢有一些可用的 shell 别名 当它们丢失时 它会让
  • 如何避免偶尔损坏的下载

    我的网站托管一个用户需要下载的 msi 文件 该文件没有什么特别的 它位于网络服务器上的一个目录中 并有一个指向它的常规 HREF 用户可以单击该目录 有时 用户会抱怨他们无法打开 msi 文件 因为 Windows Installer 声
  • 错误:26 - 定位指定的服务器/实例时出错。 (无法从我的主机服务器连接到我的本地数据库)

    我之前已经问过这个问题了 但是没有很好的答复 我的问题是我的 app data 文件夹中有一个本地数据库 aspnetdb mdf 这里是 web config 中的连接字符串
  • 无法修改我的脚本来限制抓取时的请求数量

    我用 python 编写了一个脚本Thread同时处理多个请求并更快地进行抓取过程 该脚本正在相应地完成其工作 简而言之 抓取工具的作用是 它解析从登陆页面通向其主页 存储信息的位置 的所有链接并抓取happy hours and feat
  • org.hibernate.exception.ConstraintViolationException:无法执行语句

    所以情况是这样的 我正在使用 struts2 和 hibernate 创建一个 web 应用程序 我正在创建一个更改密码页面 用户可以通过该页面更改其密码 但我收到错误为 org hibernate exception Constraint
  • 从 Linux 命令行为视频添加水印

    有谁知道如何使用简单的工具从 Linux 命令行为视频添加水印 当前版本不支持 ffmpeg 中的水印 需要自定义编译 Max ffmpeg y i inputFile mpg vhook usr lib vhook watermark s
  • 点选择器 event_handler 在 matplotlib 中绘制线并显示坐标

    我有下面的类 它通过 y 轴绘制一条垂直线 这样当我单击它时 就会在该位置绘制一条水平线 我的目标是让 y 坐标实际打印在绘制水平线的 y 轴上 为了进行测试 我尝试使用 y 坐标打印标题 但它没有按预期工作 我真正想要完成的是使条形图上的
  • 循环遍历 $_POST 变量

    抱歉 我找不到这个问题的合适标题 我使用 for 循环生成了以下内容 并使用以下模式连接了提交按钮的名称 提交 编辑 类别 1 提交 编辑 类别 2 提交 编辑 类别 3 echo
  • 在 Python 中从设备名称映射到挂载点的可靠且“尽可能便携”的方式

    我希望能够获取设备名称 例如 dev disk2 并确定其安装位置 如果有 例如 mnt cdrom or Volumes RANDLABEL 在Python中 我可以做到这一点的一种方法是运行df or mount然后解析输出 但这看起来
  • 如何在 JavaScript 中模拟按键? [复制]

    这个问题在这里已经有答案了 我正在尝试找到一种模拟按键的方法 例如 当功能启动时 应按下 向下箭头 键 因此网页应稍微滚动 我只对 Chrome 感兴趣 jQuery 或纯 JS 都合适 纯 JS 会更可取 这是我尝试过的代码示例之一 va
  • 使用 find 排除子目录

    我有这样的目录结构 data abc incoming def incoming processed 123 incoming 456 incoming processed Data 目录内的所有文件夹中都有一个传入子文件夹 我想获取除 d
  • 将作品放入 Postman 但不放入 AXIOS

    这是我的 MERN 应用程序中最奇怪的事情 当我从 Postman 向我的 api 执行 PUT 时 它会工作并更新我的 api 和 mongoDB 在前端 即使控制台日志显示正确的值并且 url 相同 它也不会更新 api 任何帮助或指导
  • 是否有固定大小分配器的优雅 C++ 实现?

    我认为如果必须包含的头文件数量尽可能少 C 库就是 优雅的 我知道已经存在固定大小的分配器 例如Loki SmallObjectAllocator and boost pool 虽然两者都很优秀 但我认为它们不够优雅 也不容易无缝集成到项目