C++ 对齐 new[]

2024-03-13

Overview

浏览时运算符 new,运算符 new[] - cppreference.com https://en.cppreference.com/w/cpp/memory/new/operator_new,似乎我们有很多选项来分配具有特定对齐要求的对象数组。但是,没有指定如何使用它们,而且我似乎找不到正确的 C++ 语法。

我可以以某种方式显式调用该运算符,还是编译器会自动推断重载? :

void* operator new[]( std::size_t count, std::align_val_t al );

看着Bartek 的编码博客 https://www.bfilipek.com/2019/08/newnew-align.html,看起来编译器会根据对齐要求是否大于自动选择重载__STDCPP_DEFAULT_NEW_ALIGNMENT__(在 64 位机器上通常为 16)。

Question

是否可以手动选择过载new在某些情况下操作员?有时我可能希望分配的块以某种方式对齐(我假设对齐始终是 2 的幂,并且可能大于 16)。

编译器的选择

在可预见的将来,我可能会使用 GCC 和 C++ >= 17。


附加参数operator new在类型之前的括号内传递:

#include <new>

int* allocate() {
    return new (std::align_val_t(16)) int[40]; // 128-bit alignment
    // will call `void* operator new[](size_t, align_val_t)`
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 对齐 new[] 的相关文章

  • 不同提供商的相同 EDMX 文件

    我正在开发一个项目 其中有一个本地数据库 SQL CE 在不存在与服务器的连接的情况下用作缓冲区 在服务器上我想使用相同的数据库布局 当然 我想使用服务器和客户端上可用的 Common dll 中的相同 EDMX 文件 在客户端中 我有一个
  • C# 中直接从 URL 获取图像尺寸

    我正在尝试使用以下代码直接从网络上获取图片的尺寸 string image http www hephaestusproject com csharp3 png byte imageData new WebClient DownloadDa
  • 读取大文件并制作字典

    我有一个大文件 我需要读取它并从中制作字典 我希望这一切能够尽可能快 然而我的Python代码太慢了 这是一个显示问题的最小示例 首先制作一些假数据 paste lt seq 20000000 lt seq 2 20000001 gt la
  • 无需登录即可在 Intranet 上获取 Web 应用程序的域\用户名

    我的 Intranet 上有一个 Web 应用程序 VS 2005 有几个页面不需要用户登录应用程序 反馈和默认页面 我正在尝试获取要显示和 或发送反馈的域名和用户名 有没有一种方法可以在不需要用户登录的情况下执行此操作 我试过了this
  • ASMX Web 服务,测试表单仅在本地计算机上适用于一种 WebMethod

    我有一个正在测试的 ASMX WebService 并且在大多数方法上我都可以使用测试表单进行测试 然而 我确实有一种方法 测试表上写着 The test form is only available for requests from t
  • 尽管浮点数相同,但它们并不相等? [复制]

    这个问题在这里已经有答案了 下面的程序输出This No is not same 当两个数字相同时为什么会这样做 void main float f 2 7 if f 2 7 printf This No is same else prin
  • c 使用 lseek 以相反顺序复制文件

    我已经知道如何从一开始就将一个文件复制到另一个文件 但是我如何修改程序以按相反的顺序复制它 源文件应具有读取访问权限 目标文件应具有读写执行权限 我必须使用文件控制库 例如 FILE A File B should be ABCDEF FE
  • 为什么我在 WinForms 列表框中得到“System.Data.DataRowView”而不是实际值?

    每当我运行代码并尝试查看highscore我在列表框中得到的只是System Data DataRowView 谁能明白为什么吗 Code MySqlConnection myConn new MySqlConnection connStr
  • 打开位置设置页面或提示用户启用位置

    我一直在绞尽脑汁 徒劳地谷歌搜索 我正在尝试找到一种方法来提示用户通过直接进入设置页面或仅点击屏幕上的 是 来切换位置 我见过的所有代码似乎都不起作用 有人有有效的方法吗 一个详细的例子将不胜感激 谢谢 我对 Xamarin 开发非常陌生
  • 从 Golang 调用 C 函数

    我想在 Golang 中编写控制器逻辑并处理 json 和数据库 同时在 C 中使用我的数学处理模型 在我看来 调用 C 函数的开销必须尽可能低 就像设置寄存器 rcx rdx rsi rdi 一样 执行一些操作fastcall 并获取 r
  • += 运算符在 C++ 中是如何实现的?

    这是我一直在思考的一个问题 但从未找到任何资源来说明这个问题的答案 事实上它不仅是为了 也适用于它的兄弟姐妹 即 等等 当然不是 考虑这个例子 int a 5 a 4 this will make a 9 现在考虑等效表达式 a a 4 T
  • 为什么 rand() 总是返回相同的值? [复制]

    这个问题在这里已经有答案了 可能的重复 在C中生成随机数 https stackoverflow com questions 3067364 generating random numbers in c 使用 rand 生成随机数 http
  • 主构造函数不再在 VS2015 中编译

    直到今天 我可以使用主构造函数 例如 public class Test string text private string mText text 为了能够做到这一点 在以前的 Visual Studio CTP 中 我必须将其添加到 c
  • 重定向 std::cout

    我需要一个类 在其对象的生命周期内将一个 ostream 重定向到另一个 ostream 经过一番修补后 我想出了这个 include
  • 何时分离或加入 boost 线程?

    我有一个方法 大约每 30 秒触发一次 我需要在一个线程中包含它 我有一个可以从类外调用的方法 像 call Threaded Method 这样的东西会创建一个线程 该线程本身会调用最终的线程方法 这些是 MyClass 的方法 void
  • 文件加密与解密问题

    我一直在尝试在 VC Express 2010 中加密和解密文件 我见过的所有教程和文档都需要两个FileStreams 来加密文件 一个用于读取未加密的版本 另一个用于加密 当我实际编写代码时 它不断抛出错误 告诉我它无法打开该文件 因为
  • 如果项目包含多个文件夹,如何使用 Add-Migration

    我想Add Migration使用我的 DbContext 但出现错误 The term add migration is not recognized as the name of a cmdlet function script fil
  • List 或其他类型上的 string.Join

    我想将整数数组或列表转换为逗号分隔的字符串 如下所示 string myFunction List
  • 在两个点之间创建一条曲线,每个点都具有标准化向量

    因此 我需要一种写入方法来在两点之间创建一条曲线 每个点都有一个指向任意方向的归一化向量 我一直在尝试设计这样一种方法 但一直无法理解数学 在这里 由于一张图片胜过一千个文字 这就是我所需要的 在图中 矢量垂直于红线 我相信向量需要进行相同
  • boost::spirit::qi::语法和可变参数模板

    我在使用可变参数模板定义语法时面临一个问题 我首先定义一些包含在某些结构中的简单语法 例如纬度 经度 如下所示 include

随机推荐

  • ggplot2-curveGrob-annotation_custom

    我正在研究类似的问题 在ggplot2中绘制两个位置之间的曲线 https stackoverflow com questions 20216179 plot curved lines between two locations in gg
  • SQL Server Express 的 SQL 代理/别名

    我找不到我需要的东西 或者我不知道要搜索什么 因为我们是一个大型团队 在我们的当地人中具有不同的设置 如果可能的话 可以以某种方式强制连接字符串在我们的当地人中持久存在 示例 在配置文件中
  • 如何在不阻塞的情况下向listview填充大量信息?

    我在后台线程上创建一个 ListViewItems 数组 然后在 ui 线程上用它填充我的列表视图 问题是 如果数组太大 则更新列表视图时 ui 会阻塞 有没有一种方法可以填充列表视图 同时对用户界面影响很小 如果您有大量数据进入其中 您可
  • 属性错误:模块“tensorflow”没有属性“变量”“错误”

    我已经使用tensor flow一天了 但是出现了一些麻烦 当我导入tensor flow时 会出现 AttributeError module object has no attribute variable 我使用Windows10 P
  • 如何结合BottomNavigationView和ViewPager?

    我需要帮助来组合 ViewPager 和 BottomNavigationView 但是 当我在 ViewPager 工作时滑动屏幕时 该片段会与另一个片段堆叠在一起 我该如何解决 堆叠片段 在刷卡之前的正常片段上 这是我的代码 MainA
  • 如何配置 actix-web 以接受来自任何来源的 CORS 请求?

    我正在使用 actix web 构建 REST API 如何配置 CORS 以接受来自任何来源的请求 Cors new lt Construct CORS middleware builder allowed origin localhos
  • AngularJS:访问 $routeProvider 中的范围变量

    我在 JSP 页面上有一个 Angular 应用程序 其中包含 ng init role 因此 当 JSP 从会话中提取角色属性时 body 标记将如下所示 我想访问这个role变量在 routeProvider 我尝试通过这样做 scop
  • 类型错误:无法读取未定义的属性“类型”(redux 工具包)

    我正在尝试使用 redux 工具包获取一些数据 但它不起作用 我只是不断收到错误TypeError Cannot read property type of undefined 我正确设置了商店 因为我有其他减速器工作正常 但是当我尝试异步
  • 在 C++ 中,如何在不使用 new 且不单独声明各个元素的情况下创建 `std::initializer_list` ?

    在 C 中 您可以在文件范围内声明一个数组 static foo a foo foo foo 各个 foo 对象具有静态存储 即它们不在运行时分配 如果我有一个由两个或多个派生类继承的基类 则以下内容将编译 但由于切片而无法按预期工作 st
  • 二维数组上的深度优先搜索

    我试图通过创建一个程序来学习 DFS 该程序可以引导我的食人魔穿过迷宫 二维数组 这类似于日常编程挑战 但我只用一个 1x1 食人魔来完成 My maze static int maze 2 1 0 0 0 0 0 0 0 0 0 0 1
  • 无效的配置对象:webpack.server.js

    我正在使用这个 webpack 文件并收到错误 这是网页包文件 const path require path module exports target node entry src index js output filename bu
  • 使用 php 从 POP3 服务器获取邮件

    我正在尝试从 POP3 获取邮件 我正在使用 POP3 邮件服务器 并且我正在尝试获取邮件内容并将其存储到我的项目的数据库表中 但我找不到任何 PHP 脚本 全部仅适用于 IMAP 您知道如何从 POP3 服务器获取邮件吗 Thanks 有
  • 如何在相对布局中以编程方式设置重力

    如何在相对布局中以编程方式设置重力 我有一个带有名称的 XML 布局chat viewer message xml如下
  • 当值 * 是 * 指定的值时,If Not 函数继续

    我正在尝试编写一个脚本来检查另一个工作表中的重复值 但我无法让它工作 在行problem如果函数always收益 是否设置为If Not or If LocationCell 不等于 Nothing 我确信这是一个明显的错误 但我无法理解
  • 如何使用Python将浮点数转换为具有预定义位数的定点数

    我有 numpy 格式的 float 32 个数字 假设是正数 我想将它们转换为具有预定义位数的定点数以降低精度 例如 数字 3 1415926 在 matlab 中通过使用函数 num2fixpt 变为 3 25 命令是 num2fixp
  • .bss 与 COMMON:什么去了哪里?

    来自我的书 bss 未初始化的全局 C 变量 COMMON 尚未分配的未初始化数据对象 我不得不说 我并没有看到明显的区别 我什至不太明白什么是未初始化 未分配的数据对象 似乎什么都没有 我用过 GNUreadelf工具尝试查看一些简单的
  • 从内核模块向用户空间通知 GPIO 中断[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有一段代码可以检测内核模块中的 GPIO 中断 现在 我正在寻找一种机制 在检测到来自内核模块的 gpio 中断时通知用户空间 任何与不同选项
  • 如何根据 React 中的 javascript 对象渲染组件 X 次?

    我正在尝试渲染 X 数量的照片 具体取决于时间的长短OBJECT photos 是 我尝试过将数据附加到字符串中 但它不起作用 有什么好的解决办法吗 var RenderPhotos React createClass getInitial
  • Stata 的替代 IDE [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 I am used to R studio for R which has some features
  • C++ 对齐 new[]

    Overview 浏览时运算符 new 运算符 new cppreference com https en cppreference com w cpp memory new operator new 似乎我们有很多选项来分配具有特定对齐要