C++0x 噪声、膨胀和可移植性

标签 c++ c++11 portability

<分区>

起初,当我看到即将到来的 C++0x 标准时,我很高兴,但并不悲观,但现在想起来,我的希望有点小了。

主要是因为三个原因:

  1. 大量的 boost 膨胀(这一定会导致无望的编译时间?),
  2. 语法似乎很长(不像我最初希望的那样 Pythonic),并且
  3. 我对便携性和其他平台(iPhone、Xbox、Wii、Mac)非常感兴趣,“标准”需要很长时间才能变得足够便携,这是否存在非常真实的风险?

我认为 #3 的风险较小,这是过去十年从模板中吸取的教训;然而细节决定成败。

编辑 2(尽量减少奇思妙想):您认为公司在标准生效的第一年过渡到 C++0x 是安全的,还是与风险很大?

最佳答案

  1. 您只需为使用的资源付费。如果您不需要复杂的模板功能,请不要#include 定义它的 header ,这样您就不必处理它。
  2. Lambda 函数应该可以减少 STL 算法的冗长程度;和 auto变量将有助于像 std::map<foo, std::shared_ptr<std::vector<bar> > >::const_iterator 这样的代码...
  3. 是的,这需要一段时间。许多新特性确实在提升,如果你想要可移植性,那是你应该在标准实现后至少使用几年的东西。幸运的是,只有两个编译器可以涵盖您提到的那些平台:g++ 和 Microsoft 的 C++ 编译器。一旦他们获得支持,使用新版本重建嵌入式工具链只是时间问题。不幸的是,可能有很多时间......

关于C++0x 噪声、膨胀和可移植性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1266861/

相关文章:

c++ - 不准确的 C++ 阶乘程序

c++ - scons 如何将 sysroot 传递给 g++

c++ - 如何在Linux终端中显示目录下的详细文件信息? - C++

c++ - 如何在支持 C++11 的 Windows 上安装 64 位 Qt?

c++ - 如何在 Linux 上编译 Windows Visual C++ 代码

c++ - C++ 中的互斥量和 lambda 函数

c++ - 当 "taking address of temporary"错误妨碍干净代码时

python - 可移植代码 : __import__ parameter string type between Python 2 and Python 3

c++ - 使用 wmemset() 的代码可移植性如何?

ajax - 哪种语言在网页菜单选项卡上提供了最大的可移植性?