为什么这个结构不是标准布局?

2024-02-03

一段代码胜过数千字。

#include <iostream>
#include <type_traits>

using namespace std;

struct A
{
    int a;
};

struct B : A
{
    int b;
};

int main()
{
    cout << is_standard_layout<B>::value << endl; // output false! WHY?
    return 0; 
}

来自标准布局类的定义(§9 类,第 7 段)

[...]
* 或者在最远的派生类中没有非静态数据成员并且最多有一个具有非静态数据成员的基类,或者没有具有非静态数据成员的基类,并且
[...]

在您的情况下,最派生的类及其基类都具有非静态数据成员。所以这不是标准布局。

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

为什么这个结构不是标准布局? 的相关文章

  • Func 方法参数的首选命名约定是什么?

    我承认这个问题是主观的 但我对社区的观点感兴趣 我有一个缓存类 它采用类型的缓存加载器函数Func
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • 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
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • WPF:旋转 2D 矢量

    我想旋转给定的 2D 矢量 是否有 WPF 内置函数可以实现此目的 目前我正在手动执行此操作 Vector v new Vector v X 10 v Y 10 Vector v2 new Vector v2 X v X Math Cos
  • 类型的替代 id 生成器

    In 我的一个项目 https github com skypjack entt 我有一个ID生成器 https github com skypjack entt blob master src entt core family hpp对于
  • Pluck id(整数)转换为字符串 Laravel

    从数据库中提取数据时 我得到id作为字符串 alphabets new Alphabet return alphabets gt pluck name id Output 1 Apple 2 Ball 3 Cat Expected 1 Ap
  • 简单代码导致读取变量时出错:无法访问地址处的内存

    我正在尝试使用支持 python 的 gdbMinGW 构建 http sourceforge net projects mingwbuilds 我遇到了一个错误 这是一段相当简单的代码 在 MSVC 下调试时效果很好 D CppProje
  • Pentaho Kettle中如何实现数据库连接参数验证

    我有一个例子 我得到 X 行数据库名称作为我需要连接的参数 我已成功完成工作和转换 为作为参数给出的每个数据库名称重复表输入步骤 因此 当这些数据库名恰好有效时 这一切都会很好地工作 但是 如果这些名称之一无效 给定名称的数据库不存在 则表
  • MediaPlayer 在单独的线程中与通过 startForeground() 在服务中运行

    所以 我在一个单独的线程中流式传输音乐 如果我离开应用程序 onPause onStop 被呼叫等 音乐继续播放 但最终 在打开其他应用程序并在它们之间切换并返回主屏幕之后 我的应用程序被终止 没有崩溃 只是一个WIN DEATH and
  • 使用 javascript、HTML5 添加注释、文本到视频中的特定帧 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何库支持在视频帧上突出显示特定内容 有点视频编辑 我想在视频帧中放置任何矩形或圆形并提供一些文
  • python中的滚动函数忽略nans

    https pandas pydata org pandas docs version 0 17 0 generated pandas rolling quantile html https pandas pydata org pandas
  • 使用 React.cloneElement 和 render prop 将 ref 传递给类组件

    我正在编写一个处理一些内部的组件state根据一个ref它的子级 例如与该子级的引用相关的鼠标事件 该组件正在使用render prop传递相关部分state给它的孩子 并渲染孩子ref通过附加React cloneElement util
  • 参考数据模式

    与此线程类似 但不完全一样 如何以线程安全的方式缓存信息 https stackoverflow com questions 1048239 how to cache information in a dao in a threadsafe
  • 对声明为友元的类进行单元测试(内部)

    在我的一些测试助手代码中 我有一个IDbSet Of T 实施称为FakeDbSet Of T 它在没有实际数据库的情况下模拟了许多 EF 行为 我已经宣布了班级Friend因为我想强制所有代码像交互一样与它交互IDbSet Of T 内部
  • 使用 css 打印模式下每页的页眉和页脚

    我有一个网络应用程序 它有一个可能超过一页的报告 我想在每一页中打印页眉和页脚 我找到并尝试这个 在每页中重复报告标题 https www servoyforge net boards 2 topics 215 r 220 message
  • 使用 dplyr 从分组 data.frame 中以组级汇总统计数据为条件进行行采样

    In 这篇文章关于对采样行数下限的比例进行采样 https stackoverflow com questions 74176819 sample a percentage of entries in a dataframe but wit
  • jquery 选择两个非兄弟元素之间的元素

    我已经删除了属性 但它是一些自动生成的 HTML img class p div hello world p font font size 2 text img class p some text font font p img class
  • 新 EC2 实例 putty 上的连接被拒绝

    我已根据从现有服务器生成的 AMI 在 EC2 上创建了一个服务器实例 创建过程中一切顺利 我为新服务器指定了与旧服务器相同的密钥 但是 当我尝试通过 putty 连接到新服务器时 我收到一条 连接被拒绝 消息 另外 尽管我选择了允许 IC
  • 如何将新函数插入我的 R 包中?

    我使用这些在 R 中制作了一个包指示 http web mit edu insong www pdf rpackage instructions pdf 我使用 RStudio 我想向包中添加一个新函数 我是否只需将函数放入 R 脚本中并将
  • Doctrine2:多态查询:搜索子类的属性

    我有一个处理客户订单的项目 其中一些订单是通过亚马逊网站订购的 所以我有一个 Order 实体和一个扩展它的 AmazonOrder 实体 AmazonOrder 添加的一件事是 AmazonOrderId 我需要实现广泛的搜索功能 用户可
  • PathTooLongException Xamarin Droid 项目

    我创建了一个具有长路径的 Xamarin Forms 项目 在构建它时出现此错误 System IO PathTooLongException 指定的路径 文件名或两者都太长 完全限定的文件名必须少于 260 个字符 目录名必须少于 248
  • 使用 argparse 解析布尔值

    我想使用 argparse 来解析写为 foo True 或 foo False 的布尔命令行参数 例如 my program my boolean flag False 但是 以下测试代码并没有达到我想要的效果 import argpar
  • 为什么这个结构不是标准布局?

    一段代码胜过数千字 include