我想包括std :: unique_lock和其他名称<互斥量>标题,但不是std :: mutex和其他名称(我有一个不同的声明 - 在Relacy Race Detector中,如果你好奇的话)。这是造成编译错误。我怎样才能做到这一点?解决包括冲突(重新定义)或如何选择包括声明的成员
编辑:当RRD和<互斥>包括发生编译器错误是:
error C2371: 'rl::condition_variable' : redefinition; different basic types C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\mutex 58 1 test_hashtable
error C2371: 'rl::mutex' : redefinition; different basic types C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\mutex 100 1 test_hashtable
error C2371: 'rl::recursive_mutex' : redefinition; different basic types C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\mutex 114 1 test_hashtable
您是否必须在std的名称空间中拥有您的互斥锁? – Pubby 2012-03-04 20:22:07
您是否使用'使用名称空间标准;'?然后,所有'std'的成员都被引入到当前的作用域中,并且不能不引入它们。请提供您的编译器错误。你确定,RRD互斥量也是'std'吗? – Zeta 2012-03-04 20:23:46
啊,我看到了混乱,不是它在命名空间std中,而是RRD互斥体也是std(因为它被设计成替代std atomics,mutex和其他的),但它不包括像std这样的东西: :unique_lock。 – Eloff 2012-03-04 20:31:09