扩展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