0
我正在编写和使用Visual C++编译器2010(和2008)一起工作的项目。我正在尝试使用新的VC++ 11,但是我对已经实现的功能有问题。 我们已经实施typdef结构atomic_int和memory_order但他们在VC补充11基本相同的功能,我得到这些错误扩展typedef结构(与VC++ 11兼容)
error C2011: 'std::memory_order' : 'enum' type redefinition
(D:\_work\wp-test\lib\Item.cpp) d:\_work\wp-test\lib\system\Atomic.h
那我要是追到我们的实现为#如果statment
#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中没有实现,而另一个功能不能转换参数
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
请帮我找一些解决方案...如何覆盖整个atomic_int从VC++ 11,或如何将memeber添加到? 谢谢
“Compilator”呃?这是一种新的工具吗? –
,因为在上面的任何代码中都不存在有问题的方法(compare_swap)和通话列表中的无效参数(第二个错误),所以我将提出我的推测上限,并建议问题出在代码NOT NOT向我们展示。 – WhozCraig
对不起,我的错误......当然编译器 – Lipov3cz3k