扩展typedef结构(与VC和11兼容) 我正在编写一个项目,它是用Visual C++编译器2010编写的(2008)。我正在尝试使用新的VC++11,但是我对已经实现的函数有一个问题。 我们已经实现了typdef struct atomic_int和memory_order,但是他们在VC11中添加了几乎相同的函数,我得到了这些错误 error C2011: 'std::memory_order' : 'enum' type redefinition (D:\_work\wp-test\lib\Item.cpp) d:\_work\wp-test\lib\system\Atomic.h
如果我将我们的实施纳入#如果状态扩展typedef结构(与VC和11兼容) 我正在编写一个项目,它是用Visual C++编译器2010编写的(2008)。我正在尝试使用新的VC++11,但是我对已经实现的函数有一个问题。 我们已经实现了typdef struct atomic_int和memory_order,但是他们在VC11中添加了几乎相同的函数,我得到了这些错误 error C2011: 'std::memory_order' : 'enum' type redefinition (D:\_work\wp-test\lib\Item.cpp) d:\_work\wp-test\lib\system\Atomic.h,c++,stl,typedef,atomic,visual-c++-2012,C++,Stl,Typedef,Atomic,Visual C++ 2012,如果我将我们的实施纳入#如果状态 #if _MSC_VER >= 1700 #include <atomic> #else //out implementation namspace std{ typedef enum memory_order { memory_order_relaxed, ... } memory_order; typedef struct atomic_int{ ... } } #endif 请帮我找到一些解决办法。
#if _MSC_VER >= 1700
#include <atomic>
#else
//out implementation
namspace std{
typedef enum memory_order
{
memory_order_relaxed,
...
} memory_order;
typedef struct atomic_int{
...
}
}
#endif
请帮我找到一些解决办法。。。如何覆盖VC++11中的整个原子int,或者如何将memeber添加到?
谢谢所以比较交换函数是std::atomic\u比较交换的旧草案名称。它是用C++11实现的allready,但我们使用了旧名称
另一个错误C2664也是旧草稿的问题(缺少重载load方法)。“编译器”呃?这是一种新的工具吗?为什么不把它放在你自己的名称空间而不是std中呢?因为上面的任何代码中都不存在有问题的方法(compare_swap)或调用列表中的无效参数(第二个错误),所以我要戴上我的推测帽,并建议问题在于你的代码没有显示给我们。对不起,我的错误。。。当然可以
error C2039: 'compare_swap' : is not a member of 'std::atomic_int'
D:\_work\wp-test\lib\network\ConnectionSocket.cpp
error C2664: 'std::atomic_int::atomic_int(const std::atomic_int &)' :
cannot convert parameter 1 from 'int' to 'const std::atomic_int &'
(D:\_work\wp-test\lib\Item.cpp) D:\_work\wp-test\lib\system\Cache.h