gpt4 book ai didi

c++ - shared_mutex C++11 实现

转载 作者:太空宇宙 更新时间:2023-11-04 12:53:48 33 4
gpt4 key购买 nike

我在这个帖子中找到了 HowardHinnant 的答案。 C++11 equivalent to boost shared_mutex

不幸的是,它似乎使用了 Microsoft 编译器 (VS2015 x64) 似乎不支持的以下宏,代码需要是 C++11 和跨平台的。

_LIBCPP_BEGIN_NAMESPACE_STD
_LIBCPP_END_NAMESPACE_STD

我试着把它改成

namespace std{
...
}

然后编译器会报错并显示以下消息。

Severity Code Description Project File Line Column Source Suppression State Tool Error C2244 'std::unique_lock<_Mutex>::unique_lock': unable to match function definition to an existing declaration shared_mutex_test c:\documents\visual studio 2015\projects\shared_mutex_test\shared_mutex.hpp 1217 1 Build

问题,如何解决这个问题。我需要 shared_mutex/shared_lock 功能,并且必须符合 C++11。我们决定不引入像 Boost 这样更大的库,因此如果我能让 HowardHinnant 的实现跨平台工作,那将是最佳解决方案。

非常感谢。

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

最佳答案

只需删除所有失败的代码即可解决。它似乎干扰了 unique_lock 的可用 c++11 实现。因为我可以使用 C++11,所以我不需要那部分代码。

要完全解决它,可能需要实现完整的 unique_lock 类。

关于c++ - shared_mutex C++11 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47675560/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com