简单布局 vs. 标准布局 vs. POD [重复]

2023-11-25

通俗地说,普通类型、标准布局类型和 POD 之间有什么区别?

具体来说,我想确定是否new T不同于new T()对于任何模板参数T。属于哪一类特征is_trivial, is_standard_layout and is_pod我应该选择吗?

(作为一个附带问题,这些类型特征中的任何一个都可以在没有编译器魔法的情况下实现吗?)


我认为这不能用真正的外行术语来完成,至少在没有lot的额外解释。一个重要的一点是静态初始化与动态初始化,但向外行人解释这一点本身就需要好几页……

POD 在 C++98 中被(错误)定义。实际上涉及两个不同的意图,但都没有很好地表达:1)如果你在 C++ 中编译 C 结构声明,你得到的应该与你在 C 中得到的相同。2)POD 只需要/使用 static (非动态)初始化。

C++0x/11(几乎)完全放弃了“POD”名称,转而支持“琐碎”和“标准布局”。标准布局旨在捕获第一个意图 - 创建具有与 C 中相同的布局的东西。Trivial 旨在捕获对静态初始化的支持。

Since new T vs. new T()处理初始化,你probably want is_trivial.

我不确定是否需要编译器魔法。我的第一反应可能是肯定的,但了解人们用 TMP 所做的一些事情,我很难确定有人也不能这样做......

编辑:例如,也许最好引用 N3290 中的示例:

struct N { // neither trivial nor standard-layout
   int i;
   int j;
    virtual ~N();
};

struct T { // trivial but not standard-layout
    int i;
private:
    int j;
};

struct SL { // standard-layout but not trivial
    int i;
    int j;
    ~SL();
};

struct POD { // both trivial and standard-layout
    int i;
    int j;
};

正如你无疑可以猜到的那样,POD也是一个 POD 结构体。

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

简单布局 vs. 标准布局 vs. POD [重复] 的相关文章

  • 单元测试验证失败

    我正在运行我的单元测试PostMyModel路线 然而 在PostMyModel 我用的是线Validate
  • 在 OnModelCreating 期间设置列名称

    Issue 我目前正在尝试通过设置的属性为我的表及其列添加前缀 我正在使用实体框架核心 我已经正确地为表名添加了前缀 但我似乎无法弄清楚列的前缀 我有一种感觉 我需要使用反射 我已经留下了我的 可能很糟糕的 反思尝试 有人有办法在实体中设置
  • 将完整模板参数值映射到原始类型

    我想将数字映射到类型 在这个例子中 我将创建一个函数 将 sizeof 结果映射到有符号的原始类型 我想知道是否有更好的方法来完成我在现代 C 中所做的事情 即采用模板化值并将其转换为类型 现在 这可以将大小转换为已知类型 但我似乎无法在标
  • 运行需要 MySql.Data 的内置 .NET 应用程序

    我在运行我编写的内置 NET 应用程序时遇到问题 我的应用程序使用最新的 MySql 连接器 该连接器安装在我的系统上 当我尝试将其添加为引用时 该连接器显示为 NET 4 Framwork 组件 当我在环境中以调试模式运行应用程序时 一切
  • 为什么'enable_if'不能用于禁用这里声明

    include
  • 一元 +/- 运算符如何可能导致“-a”或“+a”中的整数提升,“a”是算术数据类型常量/变量?

    这句看似微不足道的台词摘自我的迈克 巴纳汉和布雷迪的 C 书 第 2 8 8 2 节 http publications gbdirect co uk c book chapter2 expressions and arithmetic h
  • 在 omp 并行 for 循环中使用 unique_ptr 会导致 SEG.FAULT

    采取以下代码 include
  • C# 开源 NMEA 解析器 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 C 开源 NMEA 解析器 嗯 我自己也不熟悉 但是一些快速搜索显示了一个代码项目 htt
  • 将表(行)与 OpenXML SDK 2.5 保持在一起

    我想在 Word 文档中生成多个表 每行 2 行 但我想将这两行保留在一起 如果可能的话 new KeepNext 第一行不起作用 new KeepNext 第一行的最后一段不起作用 new CantSplit 放在桌子上不起作用 在所有情
  • 使用查询表达式对 List 进行排序

    我在使用 Linq 订购这样的结构时遇到问题 public class Person public int ID get set public List
  • MFC:如何设置CEdit框的焦点?

    我正在开发我的第一个简单的 MFC 项目 但我正在努力解决一个问题 想要设置所有的焦点CEdit其中一个对话框中的框 我的想法是 当打开对话框时 焦点位于第一个编辑框上 然后使用 选项卡 在它们之间交换 我看到了方法SetFocus 但我无
  • UI 函数在快速事件完成之前触发

    我有一个停靠在 Silverlight 应用程序中的 Web 浏览器框架 有时会在其上弹出全窗口 XAML Silverlight UI 元素 我已经或多或少修复了一个老问题 即 Web 框架的内容似乎与 Silverlight 内容不能很
  • 如何在三个 IEnumerable 上使用 Zip [重复]

    这个问题在这里已经有答案了 可能的重复 使用 Linq 从 3 个集合创建项目 https stackoverflow com questions 5284315 create items from 3 collections using
  • C#6 中的长字符串插值行

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

    我有一个 ASP NET Web 应用程序 我没有源代码 该 bin 包含 10 个程序集和一个 compiled 文件 我在 App Code dll 上使用 Reflector 它向我显示了类和命名空间之类的东西 但它太混乱了 有没有什
  • 选择查询不适用于使用Parameters.AddWithValue 的参数

    C 中的以下查询不起作用 但我看不出问题所在 string Getquery select from user tbl where emp id emp id and birthdate birthdate cmdR Parameters
  • 使用 jQuery 从 ASP.Net JSON 服务获取数据

    我正在尝试调用 Google 地图地理编码 API 从纬度 经度对中获取格式化的地址 然后将其记录到控制台 我正在尝试获取为给定位置返回的第一个 formatted address 项目 我很简单无法从 JSON 中提取该项目 我不知道为什
  • 在 C#.NET 中安全删除文件

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

    我一直不确定它的含义propertyName实施时INotifyPropertyChanged 所以一般来说你实现INotifyPropertyChanged as public class Data INotifyPropertyChan
  • 使用未分配的局部变量

    我遇到了一个错误 尽管声明了变量 failturetext 和 userName 错误仍然出现 谁能帮帮我吗 Use of Unassigned local variable FailureText Use of Unassigned lo

随机推荐

  • R 中的线性回归(正态数据和对数数据)

    我想在 R 中对正态图和双对数图中的数据进行线性回归 For 正常数据数据集可能如下 lin lt data frame x c 0 6 y c 0 3 0 1 0 9 3 1 5 4 9 6 2 plot lin x lin y 我想仅计
  • 渐进式网络应用程序中的后台事件? (构建闹钟应用程序)

    我正在尝试渐进式网络应用程序 我想尝试构建的一个场景是闹钟应用程序 我认为要使这个应用程序正常工作 它必须在后台运行 并在满足内部条件 当前时间 闹钟时间 后激活 这可能吗 或者渐进式网络应用程序还没有自由在后台操作 通过 API 访问手机
  • PhoneGap 3.3.0 中的本地通知

    谢谢道森 下面提到的问题在android中已经得到解决 但遗憾的是 当我在 ios 中构建项目时它不起作用 有人可以帮忙吗 我将使用这个插件来构建带有本地通知的 android ios 应用程序 https github com katze
  • 写入包含“”的字符串

    我有一个来自 xml 文档的字符串
  • Javascript从字符串动态调用对象方法

    我可以动态调用方法名称为字符串的对象方法吗 我想像这样 var FooClass function this smile function var method smile var foo new FooClass I want to ru
  • 如何将prestashop与android集成? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 最近我使用 prestashop 创建了一个 eshop 网站 https www prestashop com en 因为我要为其构建 Andro
  • Sharepoint:如何找到托管特定 Web 部件的所有页面?

    正如问题所述 有没有办法确定哪些页面包含我的 Web 部件 如果您正在寻找代码 我可以为您提供一些东西 如果您想查找所有内容查询 Web 部件 那么您可以像这样调用我的代码 FindWebPart http server com Micro
  • 英特尔 Inspector 报告我的自旋锁实现中存在数据争用

    我使用 Windows 中的 Interlocked 函数制作了一个非常简单的自旋锁 并在双核 CPU 两个线程递增变量 上进行了测试 该程序似乎工作正常 每次都给出相同的结果 但不使用同步时情况并非如此 但是英特尔并行检查器说有一个竞争条
  • Eclipse 突出显示该单词的相同出现

    在Notepad 中 它有一个非常好的功能 如果我选择一个单词 它会突出显示整个文本中的所有相同单词 我还可以设置热键以突出显示最多五个具有不同样式的不同单词 请参见下面的效果 有什么方法可以在 eclipse 中获得类似的效果吗 我知道在
  • watchOS - 显示有关并发症的实时出发数据

    我有一个公共交通应用程序 其中包含火车的实时出发数据 我想添加一个复杂功能 显示下一趟火车的出发时间 是否可以显示 或刷新 有关并发症的实时数据 例如 显示 到 X 站 3 分钟 根据来自公共交通 API 的信息 数据每分钟都可能发生变化
  • 同步适配器中的 ContentResolver.requestSync 在 Android 中不起作用

    我正在尝试使用 StubProvider 和 StubAuthenticator 编写一个同步适配器 我遵循了官方指南 我的代码运行没有任何错误 但 onPerformSync 没有被调用 我尝试了一切但没有用 我的完整项目可以从以下位置下
  • 有没有办法以编程方式重新启动 azure 函数

    我有一个 Azure 函数每隔几分钟在计时器上运行一次 在运行不同时间后 由于外部 API 每次运行都会开始失败 并在 Azure 门户中手动单击重新启动按钮修复了问题和作业再次工作 有没有办法让 azure 函数自行重新启动 或者让某些东
  • MAMP 将 php.ini 保存在哪里?

    我最近买了一台 mac 但我根本不习惯在 mac 上开发 我有 MAMP Pro 1 9 6 1 我做了一个定位php ini并得到这个 locate php ini Applications MAMP conf php5 2 php in
  • 如何以 html 形式将多个值附加到单个参数?

    假设我有以下形式
  • 使用 dplyr 按组计算百分比计数

    带数据框df像下面这样 df lt data frame colors c red blue green red red blue 我可以使用 dplyr 找出每种颜色的计数 如下所示 df gt group by color gt sum
  • Flutter 设计 Instagram 像气球/工具提示小部件

    在颤振中我想将此布局设计为小部件 当前实现的代码具有以下结果 你能帮我解决这个设计上的一些问题吗 因为高度 重量和角应该是可定制的 我应该可以在其中放入一些小部件 例如 class MessageClipper extends Custom
  • Gson多态序列化

    使用 Gson 2 2 2 我试图序列化 POJO 行为 的数组列表 我有一个适配器 它几乎是我在网上看到的适配器的副本 public class BehaviorAdapter implements JsonSerializer
  • 如何在 Crystal Reports for Visual Studio 中实现数据透视报表?

    除了带有小计的水平线之外 我对任何报告都是菜鸟 我有一个数据集 其中包含汽车在停车场所花费的时间 我必须生成一个表格 其中每小时显示一列 每天显示一行 显示特定日期特定时间的条目数 我会发现在 RDLC 设计器中更容易做到这一点 因为它具有
  • 适用于 Docker 的 Google Cloud Logging 驱动程序

    我无法验证谷歌云驱动程序gcplogs对于 Docker 尽管我已经设置了环境变量GOOGLE APPLICATION CREDENTIALS到我的服务帐户的 JSON 凭据所在的路径 文件 错误信息如下 ERROR for oncrm o
  • 简单布局 vs. 标准布局 vs. POD [重复]

    这个问题在这里已经有答案了 通俗地说 普通类型 标准布局类型和 POD 之间有什么区别 具体来说 我想确定是否new T不同于new T 对于任何模板参数T 属于哪一类特征is trivial is standard layout and