为什么C++17/C++20中没有添加synchronized_value?

NoS*_*tAl 9 c++ multithreading mutex c++17 c++20

我对synchronized_value的状态有点困惑,一方面它是在CppCoreGuidelines中建议的,但另一方面它在C++20中不可用,甚至没有boost版本(有一个实验版本)。

注:我知道标准化需要时间,但这篇论文是 2014 年的。

我最担心的是标准化过程中是否发现了一些问题,因此不应使用synchronized_value,这违反了核心准则。

CP.50:定义 amutex及其保护的数据。synchronized_value<T>尽可能使用

原因:对于读者来说,要保护数据以及如何保护数据应该是显而易见的。这减少了锁定错误互斥锁或未锁定互斥锁的可能性。

使用 asynchronized_value<T>确保数据具有互斥体,并且当访问数据时正确的互斥体被锁定。请参阅 WG21 提案以添加synchronized_value到未来的 TS 或 C++ 标准修订版。