自定义 std::allocator_traits::construct

2023-12-21

我想定制std::vector不默认构造元素类型的行为(例如int),因为对于大向量来说这样做的成本很高。

看着这个,我认为做到这一点的唯一方法就是专业化std::allocator_traits<MyAllocator>::construct。但是,这似乎不可能,因为专业化必须与原始声明位于同一名称空间中。

专注于namespace std似乎已经不对了。实际上比这更糟糕,因为我使用的 STL 实现实际上把std::allocator_traits in namespace std::__u(这肯定会因 STL 实现而异),因此这样做似乎是非常错误的。

这很令人困惑,因为 std::allocator_traits 的设计似乎是为了允许专业化,但我不知道如何实际做到这一点。这是一个坏主意吗?如果是这样,是否有其他方法可以解决该问题(避免 STL 容器中元素的默认构造)?


专门化标准库特征类不仅是允许的,而且是提供此类功能的主要方式。然而,在这种特殊情况下,这是不必要的。

默认std::allocator_traits<T>::construct实施(其中T是你的分配器类型,而不是正在使用的容器的值类型)将调用construct的成员函数T if T有这样一个函数,它调用placement-new if T没有合适的成员。所以只需给你的分配器一个construct会员,你应该没问题。

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

自定义 std::allocator_traits::construct 的相关文章

  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 使用 WGL 创建现代 OpenGL 上下文?

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

随机推荐

  • 在 python 正则表达式中使用 OR 的最佳方法是什么

    我正在做关于正则表达式的作业 并且遇到一些困难OR 给定以下字符串 avc7fsrd5vcc12vfscsrwt1qw7eetrs fsrsy 应该返回 t1 s fdjhads jhf 5672t3zcxvb m654godjhfjdye
  • 无法签入 TFS 并使用持续集成进行构建'

    我昨天将一个 Azure Web 应用程序签入 TFS 没有出现任何问题 签入后 资源管理器将注入我们的 nuget 包 如果构建成功则进行部署 I made a few changes added a class and checked
  • 将示例项目导入到eclipse中

    我知道这可能是一个菜鸟问题 但我以前没有这样做过 如何导入 android 示例项目 例如 https developer android com training location retrieve current html https
  • 将 Uncrustify 与 VIM 结合使用

    在我的 vimrc 中 我通过以下命令调用 Uncrustify uncrustify l CPP c D uncrustify default cfg 之后在一些代码上我收到一个 Windows Fatal 错误 但是当我使用 f 选项在
  • Liquibase 多个变更日志执行

    我在用着SpringLiquibase对于 liquibase 配置 以下配置适用于单个变更日志文件 sql 格式 Configuration Slf4j public class LiquibaseConfiguration Inject
  • 通过 SSIS 上传之前验证数据

    我有一个 SSIS 包 用于将 Excel 文件中的数据上传到 Sql Server 2005 表中 Excel 文件将包含 20k 30k 行范围内的不同行数据 当所有数据正确时 上传工作正常 但当即使在单行中出现小问题时 显然也会失败
  • 将 JavaScript 对象进行 AND 运算

    我在我们的应用程序中遇到了这段代码 已修改 并对它的工作原理感到困惑 function someObject this someProperty this foo bar baz function return Huh this getVa
  • Spark 结构化流 - 由于输入源数量增加而导致检查点中出现断言错误

    我正在尝试将两个流合并为一个并将结果写入一个主题 代码 1 阅读两个主题 val PERSONINFORMATION df DataFrame spark readStream format kafka option kafka boots
  • 提高重叠片段可视化的性能

    我有一组 x 点对 用于沿 x 轴绘制线段 以在 R 中创建自定义读取映射 绘制这些线段的一半任务是确定它们的 y 位置 以便没有两个重叠的线段位于同一 y 水平上 对于每个段 我从第一个位置迭代 y 个级别 直到到达尚未包含与当前段重叠的
  • Angularjs ng-单击重复表行不起作用

    在 AngularJS 中 ng click 以下 HTML 对我不起作用 tr td ai name td td ai desc td tr 我的控制器中的 go 功能目前只有 scope go function hash console
  • 如何使用 sns.boxplot 或 sns.catplot 添加剖面线到箱线图

    I need to add hatches to a categorical box plot What I have is this 我需要的是这样的 带有中线 我尝试过的是这段代码 exercise sns load dataset e
  • 存储库模式与活动记录模式相同吗?

    他们似乎很相似 他们是不同的 活动记录模式定义 An包装数据库中的行的对象表或视图 封装数据访问 并在该数据上添加域逻辑 在存储库模式中全部数据访问放在单独的类中并通过实例方法进行访问 对我来说 这样做是有益的 因为数据访问现在封装在一个单
  • 在哪里存储桌面应用程序的用户数据?

    我正在开发 C NET 桌面应用程序 我希望用户能够创建新的数据库文件 我是桌面应用程序的新手 我真的不知道存储这些文件的最佳位置在哪里 我想将它们存储在我的应用程序文件夹中 但我读到这不是最好的解决方案 我应该将它们存储在 C 中还是有其
  • 需要 XAML 教程 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是 Silverlight 新手 我需要一个教程来帮助我理解 XAML 样式 资源和对象绑定到 UI
  • 如何根据环境设置facebook认证密钥?

    我有一个 Rails 应用程序 它使用omniauth 通过 Facebook 对访问者进行身份验证 当您向 Facebook 注册应用程序时 您必须注册一个回调 URL 一旦完成身份验证过程 他们将重定向到该回调 URL 由于我的生产站点
  • 使用ngx-bootstrap modalService时添加自定义类的方法

    当寻找ngx引导程序 https valor software com ngx bootstrap 源代码 https github com valor software ngx bootstrap here 模态选项 class ts h
  • x86 PIC,QEMU 在所有 CPU 上引发中断是否正确?

    我最近不得不解决 x86 PIC 的专有操作系统问题 其中操作系统预期定时器中断仅在 CPU0 上 我启用了 IO APIC 来解决这个问题并进行了 CPU 控制 因此中断仅到达 CPU0 问题解决了 有人告诉我 我们的硬件已经损坏 无法做
  • Tensorflow:使用 CPU 的特定核心执行操作

    目前可以通过 tf device 函数指定用于特定操作的 CPU 或 GPU 但是无论如何您都可以指定一个coreCPU 的 目前没有用于将操作固定到特定核心的 API 尽管这将是一个很好的选择功能要求 https github com t
  • 子类化 UIAlertController 并遇到运行时错误

    我是 iOS 和 OSX 编程新手 决定从 Swift 开始 使用 iOS8 API 来测试应用程序 并尝试一些我在其他环境中使用的编程技术 然而 我遇到了一个奇怪的情况 我希望有人能够识别并帮助我 这涉及到 UIAlertControll
  • 自定义 std::allocator_traits::construct

    我想定制std vector不默认构造元素类型的行为 例如int 因为对于大向量来说这样做的成本很高 看着这个 我认为做到这一点的唯一方法就是专业化std allocator traits