shared_mutex C++11 implementation

shared_mutex C++11 implementation

本文关键字:implementation C++11 mutex shared      更新时间:2023-10-16

我在此线程中找到了霍达宁的答案。C 11等于Boost shared_mutex

不幸的是,它似乎使用了以下宏,Microsoft编译器(VS2015 X64)似乎不支持,并且代码需要为C 11和Cross-Platform。

_LIBCPP_BEGIN_NAMESPACE_STD
_LIBCPP_END_NAMESPACE_STD

我试图将其更改为

namespace std{
...
}

然后编译器向以下消息投诉。

严重性代码描述项目文件线列源抑制 状态工具错误C2244'STD :: unique_lock< _mutex> :: simolor_lock':无法 将函数定义与现有的定义匹配 声明shared_mutex_test c: documents Visual Studio 2015 projects shared_mutex_test shared_mutex.hpp 1217 1构建

问题,如何解决此问题。我需要shared_mutex/shared_lock功能,我必须符合C 11。我们已经决定不引入更大的图书馆,例如Boost,因此,如果我能够获得霍华德南特(Howardhinnant)的实现来跨平台工作,那将是最佳解决方案。

非常感谢。

ps。我还没有足够高的声誉来评论封闭的问题,因此我被迫打开这个新线索。随意将其移至另一个线程中。

仅通过删除所有失败的代码来解决。看来它干扰了可用的C 11实现unique_lock。由于我可以使用C 11,所以我不需要代码的那部分。

要充分解决完整的unique_lock类可能需要实现。