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