繁体   English   中英

为什么 std::mutex 是标准布局类?

[英]Why is std::mutex a standard-layout class?

[thread.mutex.class]/3 :

类互斥锁满足所有互斥锁要求([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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM