ogg*_*ter 7 c++ portability stl g++ c++11
我从事大规模,多平台,实时网络应用.我工作的项目一般没有真正使用容器或标准库,没有智能指针或任何"现代"C++语言功能.大量原始动态分配的阵列很常见.
我非常想开始使用标准库和一些C++ 11规范,然而,有很多人也在研究我的项目,因为"STL/C++ 11不那么便携,我们冒风险使用它".我们在各种嵌入式系统以及完全成熟的Ubuntu/Windows/Mac OS系统上运行软件.
那么,对我的问题; 标准库和C++ 11关注的可移植性的实际问题是什么?这只是让g ++超过某个版本的情况吗?有些平台没有支持吗?是否需要编译库?如果需要,是否难以获取/编译?有没有人有严重的问题被非便携式纯C++烧毁?
对于 Visual C++ 2012、gcc >= 4.7 和 Clang >= 3.1,除了一些并发问题之外,对新 C++11 标准的库支持相当完整。编译器对所有单独语言功能的支持是另一回事。请参阅此链接,了解受支持的 C++11 功能的最新概述。
对于嵌入式/实时环境中 C++ 的深入分析,Scott Meyers 的演示材料确实很棒。它讨论了虚拟函数、异常处理和模板的成本等等。特别是,您可能想看看他对 C++ 功能的分析,例如堆分配、运行时类型信息和异常,这些功能具有不确定的最坏情况时序保证,这对于实时系统很重要。
您主要关心的是这类问题,而不是便携性(如果您关心您奶奶的起搏器......)