【发布时间】:2021-11-03 01:20:40
【问题描述】:
This draft of the standard 在11.2.6 包含关于标准布局类型的注释:
[注 3:标准布局类对于与用其他编程语言编写的代码进行通信很有用。它们的布局在[class.mem] 中指定。 — 尾注]
在指向class.mem 的链接之后,我们发现了有关以here 开头的标准布局类型的布局规则,但我不清楚它们是什么使它们对与其他语言进行通信有用。这一切似乎都与布局兼容的类型和常见的初始顺序有关,但我没有看到任何迹象表明这些兼容性要求会扩展为给定的实现。
我一直认为标准布局类型不能具有由实现强加的任意填充,并且必须遵循“直观”的布局,这将使它们易于在其他语言中使用。但我似乎找不到任何这样的规则。
这个注释是什么意思?我是否遗漏了任何强制标准布局类型至少在给定平台上保持一致的规则?
【问题讨论】:
标签: c++ language-lawyer standard-layout