简单布局 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 [重复] 的相关文章

  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • 如何在我的应用程序中使用 Windows Key

    Like Windows Key E Opens a new Explorer Window And Windows Key R Displays the Run command 如何在应用程序的 KeyDown 事件中使用 Windows
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 我的 strlcpy 版本

    海湾合作委员会 4 4 4 c89 我的程序做了很多字符串处理 我不想使用 strncpy 因为它不会终止 我不能使用 strlcpy 因为它不可移植 只是几个问题 我怎样才能让我的函数正常运行 以确保它完全安全稳定 单元测试 这对于生产来
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 已过时 - OpenCV 的错误模式

    我正在使用 OpenCV 1 进行一些图像处理 并且对 cvSetErrMode 函数 它是 CxCore 的一部分 感到困惑 OpenCV 具有三种错误模式 叶 调用错误处理程序后 程序终止 Parent 程序没有终止 但错误处理程序被调
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小渲染得更大

    我使用 Qt 创建了一些 GUI 应用程序 我的 GUI 应用程序包含按钮和单选按钮等控件 当我运行应用程序时 按钮内的按钮和字体看起来正常 当我将显示器的 DPI 缩放大小从 100 更改为 150 或 200 时 无论分辨率如何 控件的
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • 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