[英]Why is std::mutex a standard-layout class?
类互斥锁满足所有互斥锁要求([thread.mutex.requirements])。 它是一个标准布局类 ([class.prop])。
这个要求的原因是什么?
与相关 C 接口的互操作性。 从N2320 (标准 C++ 多线程库):
C 级接口已从本提案中删除,理由如下:
- 只要我们指定这个提案中的关键类型是标准布局类型(我们已经完成了),WG14 仍然可以自由地标准化一个与这个 C++ 接口互操作的 C 接口。
- WG14 比 WG21 更能解决取消互操作性问题。 [...]
- WG14 要求 WG21 在这个问题上起带头作用。 我们认为我们最好只指定一个 C++ 接口,它有最少的钩子来支持未来的 C 互操作接口(即类型是标准布局类型)。 我们觉得我们应该停止在 C++ 标准中实际指定 C 接口。 WG14 可以更好地使用 C 接口,然后未来的 C++ 标准可以通过引用导入它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.