扩展typedef结构(与VC++11兼容)
Extending typedef struct (compatibility with VC++11)
我正在开发一个项目,该项目是用Visual C++编译器2010(和2008)编写的。我正在尝试使用新的VC++11,但我对已经实现的函数有问题。我们已经实现了typdef struct-atomic_int和memory_order,但它们在VC 11中添加了几乎相同的函数,我得到了这些错误
error C2011: 'std::memory_order' : 'enum' type redefinition
(D:_workwp-testlibItem.cpp) d:_workwp-testlibsystemAtomic.h
如果我发现我们在#If 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:_workwp-testlibnetworkConnectionSocket.cpp
error C2664: 'std::atomic_int::atomic_int(const std::atomic_int &)' :
cannot convert parameter 1 from 'int' to 'const std::atomic_int &'
(D:_workwp-testlibItem.cpp) D:_workwp-testlibsystemCache.h
请帮我找到一些解决方案。。。如何从VC++11中覆盖整个atomic_int,或者如何将memeber添加到?感谢
因此compare_swap函数是中std::atomic_compare_exchange_weak/strong的旧草案名称。它已经在C++11中实现了,但我们使用了旧名称。
另一个错误C2664也是旧草稿的问题(缺少重载加载方法)。
相关文章:
- 发生 Qt5.11 应用插件构建错误:信号和插槽参数不兼容
- 使 C++14 constexpr 函数C++11 兼容
- C++11 具有与不同版本的 GCC 兼容的功能
- 在C 98,C 11交叉兼容代码中处理覆盖的优雅方法
- 升级到G 4.7(带有C 11支持):任何ABI不兼容
- 扩展typedef结构(与VC++11兼容)
- VC++11映射和多映射迭代器(重载)C2535
- 是一个与非使用C++11创建的线程兼容的C++11互斥体
- 错误:在“char”到“char[11]”的赋值中存在不兼容的类型
- 将 VS C++编译更改为 vc 11 到 vc12
- VC++11 中的 regex_split() 等效性仅使用标准库
- 在生成文件中自动选择与 C++11 兼容的 g++ 版本
- VC++11中的std::线程类会导致随机崩溃.任何变通办法
- linux服务器上的C++11兼容编译器,无需root访问权限
- 用于链接的VC 11.0命令链接选项是什么
- c++ 11兼容自定义键集(key_type不是value_type,而是获取value键的functor)
- 在vc++ 11上安装libCURL -无法解析的外部符号错误
- 获取 C++11 - 兼容编译器
- g++4.4 c++98对象文件与g++4.8 c++11兼容吗?
- vc++ 11 - std::condition_variable_any与标准不兼容