是否允许类型相同但大小不同的双关数组?

2024-03-10

类型相同但大小不同的双关数组仍然违反严格别名吗?

int arr[4];
int(&ref)[2] = reinterpret_cast<int(&)[2]>(arr);

arr[0] = 0; //write to original
ref[0]; //read from pun

我们可以这样论证:[expr.reinterpret.cast]/11 http://eel.is/c++draft/expr.reinterpret.cast#11:

类型的左值表达式T1可以转换为“引用”类型 到T2” 如果一个表达式类型为“指向T1” 可以明确地 转换为“指向的指针”类型T2“ 用一个reinterpret_cast. 结果引用与源泛左值相同的对象,但具有指定的类型。

[转换数组] http://eel.is/c++draft/conv.array:

“数组”类型的左值或右值N T” [...] 可以转换为 “指向的指针”类型的纯右值T”. 结果是一个指向 数组的第一个元素。

IE。可以说,我们有一个指针points到(不仅仅是代表其地址)第一个元素。它属于该元素的类型。从而访问ref[0]应该被定义。

按照这个逻辑,写也可以

auto& ref = reinterpret_cast<unsigned(&)[200]>(arr);
std::cout << ref[0];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否允许类型相同但大小不同的双关数组? 的相关文章

  • 为什么 F# 的默认集合是排序的,而 C# 的不是?

    当从 C 世界迁移到 F 最惯用的可能 思维方式时 我发现了这个有趣的差异 在 C 的 OOP mutable 世界中 默认的集合集合似乎是HashSet https learn microsoft com en us dotnet api
  • 在路由mvc 4中添加公司名称

    我一直在尝试为 Facebook 等用户提供在 URL 中添加公司名称的选项 http localhost 50753 MyCompany Login 我尝试过不同的网址 但没有成功 routes MapRoute name Default
  • 在 Java 中创建 T 的新实例

    在C 中 我们可以定义一个泛型class A
  • CSharpRepl emacs 集成?

    我碰巧知道莫诺CSharpRepl http www mono project com CsharpRepl 是否有 emacs csharp 模式使用它在一个窗口中运行 REPL 并像 python 模式一样在另一个窗口中编译 运行 C
  • std::call_once 可重入且线程安全吗?

    std call once http en cppreference com w cpp thread call once是线程安全的 但它也是可重入的吗 我使用 VS2012 调试和发布 进行的测试表明 调用std call once从单
  • C# 开源 NMEA 解析器 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 C 开源 NMEA 解析器 嗯 我自己也不熟悉 但是一些快速搜索显示了一个代码项目 htt
  • 访问 ascx 文件中的母版页控件

    我有一个母版页文件 其中包含 2 个面板控件中的 2 个菜单 我还使用控件来检查用户是否登录并获取用户类型 根据我想要显示 隐藏面板的类型 控件本身不在母版页中引用 而是通过 CMS 系统动态引用 我想在用户控件中使用findcontrol
  • 增强精神、递归和堆栈溢出

    为什么下面的代码在运行时崩溃 它会给出堆栈溢出错误 include
  • 使用 C# 和 wpf 创建类似 Dock 的应用程序

    我需要创建一个与我们购买笔记本电脑时获得的应用程序类似的应用程序 仅当鼠标指针到达窗口顶部时它才可见 那么我怎样才能使用 C 4 0 来做到这一点呢 http www notebookcheck net uploads pics win2
  • C#6 中的长字符串插值行

    我发现 虽然字符串插值在应用于现有代码库的字符串 Format 调用时非常好 但考虑到通常首选的列限制 字符串对于单行来说很快就会变得太长 特别是当被插值的表达式很复杂时 使用格式字符串 您将获得一个可以拆分为多行的变量列表 var str
  • 搜索实体的所有字段

    我正在尝试在客户数据库上实现 多功能框 类型的搜索 其中单个查询应尝试匹配客户的任何属性 这是一些示例数据来说明我想要实现的目标 FirstName LastName PhoneNumber ZipCode Mary Jane 12345
  • 从BackgroundWorker线程更新图像UI属性

    在我正在编写的 WPF 应用程序中 我有一个 TransformedBitmap 属性 该属性绑定到 UI 上的 Image 对象 每当我更改此属性时 图像就会更新 因此显示在屏幕上的图像也会更新 为了防止在检索下一张图像时 UI 冻结或变
  • 使用 GCC 生成可读的程序集?

    我想知道如何使用GCC http en wikipedia org wiki GNU Compiler Collection在我的 C 源文件中转储机器代码的助记符版本 这样我就可以看到我的代码被编译成什么 你可以使用 Java 来做到这一
  • .NET 4 的条件编译[重复]

    这个问题在这里已经有答案了 可能的重复 条件编译和框架目标 https stackoverflow com questions 2923210 c sharp conditional compilation and framework ta
  • CUDA 8 编译错误 -std=gnu++11

    我正在尝试转换一些代码以使用 CUDA 并且我认为我遇到了兼容性问题 我们使用CMake 这些是我使用的 gcc 和 CUDA 版本 gcc version gcc Ubuntu 5 4 0 6ubuntu1 16 04 5 5 4 0 2
  • 在 C#.NET 中安全删除文件

    在我正在做的一个项目中 我想为用户提供 安全 删除文件的选项 例如 用随机位或 0 覆盖它 在 C NET 中是否有一种简单的方法可以做到这一点 效果如何 你可以调用系统内部删除 http technet microsoft com en
  • 如何调试 .NET 运行时中的内部错误?

    我正在尝试调试一些处理大文件的工作 代码本身works 但 NET 运行时本身会报告零星错误 对于上下文 这里的处理是一个 1 5GB 文件 仅加载到内存中一次 在循环中处理和释放 故意尝试重现此否则不可预测的错误 我的测试片段基本上是 t
  • 如何在 winforms 应用程序的主屏幕显示之前显示欢迎屏幕?

    我想在应用程序启动时加载欢迎屏幕 然后用户单击欢迎屏幕上的按钮 然后关闭欢迎屏幕 最后显示主屏幕 static void Main startup method being called Application EnableVisualSt
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T
  • 如何使用placement new重新初始化该字段?

    我的课程包含字段 private OrderUpdate curOrderUpdate 我一遍又一遍地使用它 经常需要重新初始化 for int i 0 i lt entries size i auto entry entries i ne

随机推荐

  • POST后通过REST返回内容可以吗?

    我正在使用 RESTlet 并且创建了一个资源 我通过重写处理 POSTacceptRepresentation method 客户端应该向我发送一些数据 然后我将其存储到数据库 将响应设置为 201 SUCCESS CREATED 我需要
  • 选择R中满足多个条件的数据帧索引

    我有一个数据框 我想制作满足多个条件的子集 或仅选择那些行 例如 a lt data frame a c a a b c b d b c 1 2 3 4 2 3 gt a a b 1 a 1 2 a 2 3 b 3 4 c 4 5 b 2
  • 如何防止 Firebase 身份验证用户自行更改电子邮件地址?

    根据 firebase 文档 客户端 SDK 似乎允许直接更新电子邮件地址以及用户个人资料信息 https firebase google com docs auth android manage users update a users
  • C# 获取进程的CPU使用率

    我想获取特定进程的 CPU 使用情况 这段代码 total cpu new PerformanceCounter Processor Processor Time Total 效果很好 该数字对应于 Windows 中的 CPU 使用率 数
  • 如何改变 matlab 图的线条颜色(如颜色图)?

    我有一个二维空间 其中定义了一个函数值 您可以将其视为流形 现在 我使用轮廓绘制了函数值 并将颜色图更改为比 jet 更柔和的颜色 到目前为止看起来相当不错 现在我想画一条线代表我的空间中随时间变化的状态 这也可以使用plot命令 但我想要
  • 如何跟踪 ASP.net 中的调试消息?

    简洁版本 我已经添加
  • Laravel Carbon,检索今天的日期和工作日?

    我正在使用 Carbon 将 2 个日期与今天的日期进行比较 但是我在数据库中还有另一个名为工作日的字段 其中包含以下值 莫 你 我们 所以我不仅想按日期搜索和输出 还想按工作日搜索 所以 public function show id t
  • 将 JSON 反序列化为 C# 类

    下面是我在成功创建新的 工作代码 条目后从 REST API 获得的 稍微 精简的响应 我需要将响应反序列化到某些类中 但我很困惑 作为参考 我在 NET 3 5 中使用 JSON NET 在 SQL Server 2008 R2 中的 S
  • 使用变量调用[数据库].[架构]

    我试图操纵这个现有的代码 因为在测试时 它没有引用表的确切位置 我的意思是 它不引用表的数据库名称和架构及其表名称 示例 如果该表被调用 package 那么目前它只是在更新语句 package 中输出 而不是 Holidays dbo p
  • 在 OnGroupClickListener 中获取单击的组

    如何检索在 ExpandableListView 的 OnGroupClickListener 中单击的组 我尝试过parent getItemAtPosition groupPosition 它返回组和子项 所以我想我必须将groupPo
  • WPF 中 MVVM 的项目结构

    在 WPF 中使用 MVVM 时最终得到的项目结构是什么 从我现在看到的教程来看 他们通常有文件夹 Model ViewModel 和 看法 在模型中 您可以放置 像 Person 这样的类来捕获数据 和逻辑 在 ViewModel 中 您
  • 气流:在特定时间重试

    我需要创建一个绝对需要在 9 点之前运行的 Airflow 作业 我目前有一项工作从 7 小时开始 重试 8 间隔 15 分钟 8 15m 2 小时 不幸的是 我的工作需要更多时间 因此 任务在 9 小时 硬截止日期 后失败 我怎样才能让它
  • 如何正确缩进 Django 模板

    我在 SublimeText 3 中工作 在编写 Django 模板时 我混合了 html 和函数 我喜欢缩进我的代码 以便block if和其他此类声明均缩进 例如 手动格式化 extends accounts base html blo
  • 如何将 CNF 表达式重铸为 3-CNF?

    我有一个像这样的 CNF 表达式 我想将其重新转换为 3 CNF a b c d a b d a b d 有谁知道我该怎么做 A 3 CNF https math stackexchange com questions 56369 can
  • VB.NET - Array.Contains 的替代方案?

    之前 我在 NET Framework 3 5 上使用它并且运行良好 If New String ER PM EM OC Contains Session Position Then Some codes End If 现在我正在做一个使用
  • 模板渲染期间出现异常(“块类型 sonata.Admin.block.admin_list 不存在”)

    Hi我是新来的Symfony2并在生成我的管理面板时面临这个问题 在 SonataAdminBundle Core dashboard html twig 第 35 行渲染模板期间出现异常 块类型 sonata Admin block ad
  • Java(机器人)屏幕截图超出可见范围

    我想立即截取比我的屏幕大的整个网站的屏幕截图 我知道如何使用 Robot 类来截取可见区域的屏幕截图 我认为这样做的一种方法是 启动浏览器 进入所需网站 启动我的程序 程序将截取可见区域的屏幕截图 程序将向下滚动以使页面的后半部分可见并截取
  • EF 4.1 Code First 和现有数据库以及 .NET 成员资格

    我的开发盒上有一个名为 ApplicationName Development 的数据库在 SQL Server 2008 R2 Developer 版本上运行 我将 NET 成员资格表添加到数据库中没有任何问题 当我尝试让 Code Fi
  • 我想删除 HTML 空白

    我有一个新问题困扰着我 我正在制作一个网页 我希望在不滚动的情况下进行修复 最重要的是我希望我的主 Div 填满我的所有可用空间 我做了这个代码
  • 是否允许类型相同但大小不同的双关数组?

    类型相同但大小不同的双关数组仍然违反严格别名吗 int arr 4 int ref 2 reinterpret cast