什么是C++11
已经足够成熟的功能,我可以开始在我的项目中安全使用。我在说的是GCC
,主要是我很少需要Visual Studio。我显然不希望在我的代码中包含一个需要几个月后重写的功能。我是否应该从一开始就开始使用这些功能?因为我们主要做的事情不是c++11 dependent
我们可以在老派的方法中做所有事情和每件事情。所以我们甚至应该在这个早期阶段开始使用C++ 11功能?什么是稳定的C++ 11功能可以安全使用
8
A
回答
8
C++ 11标准终于完成并发布了,所以不会有任何更改。实现仍然落后一点,可能会实现C++ 0x的稍旧版本,但在更新时可能不会注意到很多差异。
C++ 11并不完全向后兼容,所以您应该做的第一件事就是从C++ 11兼容性的角度开始开发。 GCC有一个警告标志“-WC++ 0x-compat”来帮助解决这个问题。不兼容性非常小,但这应该会导致任何问题。
一个很大的不兼容性是libstdC++的ABI随着向C++ 11的转移而改变,因此您还必须确保可以处理该问题。
一旦你知道安全移动,就可以开始用C++ 11模式编译。在编写新代码或更改旧代码时,您可以逐渐采用任何C++ 11功能对您有用的东西。您可能还需要考虑检查弃用功能的使用情况,例如旧的异常规格,并将其替换为新的功能。
有很多新东西,所以看看标准,如果你可以得到它或一些文件在线。我发现我想直接使用的大部分真正有趣的东西都在图书馆里。不幸的是,这似乎是当前实施仍然滞后最多的地方。
0
您可能需要访问:
http://gcc.gnu.org/projects/cxx0x.html
这个链接给出了不同版本的GCC中的C++ 0x的支持。
我建议你现在使用C++ 11(只需在GCC命令行中添加-std = C++ 0x)。如果你很幸运,那么代码中没有什么会改变。即使您不使用任何C++ 11功能,您仍然可以从右值引用的性能改进和移动语义中受益。
相关问题
- 1. 什么是Google Closure Library的最佳/更稳定的功能
- 2. 什么C++头可以用于这些特定的功能? Linux
- 3. 什么可以使用MATLAB功能“Plot3D”?
- 4. 异步使用C++ 11 lambda,安全
- 5. 什么是稳定匹配?
- 6. C++ 11:用于延迟初始化的安全双重检查锁定。可能?
- 7. 什么是C/C++中的“安全”和“不安全”代码?
- 8. 定义_HAS_TRADITIONAL_STL以启用STL功能是否安全?
- 9. 以下功能的用意是什么?
- 10. 是可以安全使用的ServletContext#getMimeType()
- 11. 是可以安全使用的DLL从
- 12. C++ 11的std :: binomial_distribution不稳定
- 13. 是可以做一个安全的JS脚本或功能?
- 14. 什么是使数据库的用户输入安全的最佳功能?
- 15. Dart的主要安全功能是什么?
- 16. 为什么使用before_action可以安全使用:authenticate_admin?
- 17. 为什么C标准包含许多不安全的功能,而这些功能是无用的?
- 18. 排序算法稳定或不稳定的原因是什么?
- 19. 我可以信任node.js吗?安全/稳定性问题
- 20. C#关键字固定/不安全的用途是什么?
- 21. 什么是C#项目设置“允许不安全代码”的实际功能
- 22. 此功能是否安全?
- 23. 使用AtomicUsize时,const fns是一个不稳定的功能:: new
- 24. 什么时候可以考虑使用危险的SetInnerHTML()安全?
- 25. 使用Webview/javascript的Android应用程序。什么可能是安全问题?
- 26. 是否可以安全使用java.io.BufferedOutputStream?
- 27. 是可以安全使用访问块
- 28. 是否可以安全使用socket.io?
- 29. 使功能异常安全
- 30. 为什么这个算法稳定,我怎么能使它不稳定?
您定位的是哪个GCC版本,此代码在哪里运行,您的目标系统使用了什么......本页详细介绍GCC版本中的功能何时可用:http://gcc.gnu.org/projects/cxx0x。 html – birryree
我在Windows上使用MinGW I'vent检查了该版本。和在Linux上我4.3.2然而我不知道下一次我会在哪里放置工作。 –
是那些可以更改的功能?或者他们是稳定的? –