【发布时间】:2011-07-23 10:43:48
【问题描述】:
我有一个相当大的 C++ 代码库(不是自己编写的)。 许多库,有些在语法上不那么重,有些非常重。 其中大量使用了 Boost,一些 Eigen。
我只是喜欢 0x 的一些新功能,并且快速编译/测试告诉我它看起来一切都很好。 This question、and this one 建议有些东西闻起来很有趣。
我现在的状态是:
- gcc4.4.3
- libstc++6-4.4
- boost-1.40
- 特征 3.0 - beta3
使用std=c++0x 标志。
我知道标准委员会一直在为向后兼容性而苦恼,并忍受着严重的痛苦。 我的问题是,它有效吗?我可以使用所有代码,打开 c++0x 并确定一切不仅可以编译而且可以按预期工作吗?
我不使用高 0x 魔法,只使用 auto 和一些常用的收藏夹,在 GNU C++0x status 上明确标记为“已实现”。
【问题讨论】:
-
试试热门的新语言,它叫做 C89 :)。适用于一切。你甚至可以在你的 C++ 编译器中使用它!保证升级不会中断。
-
类似 "sizeof('a')" 的东西在由 C++ 编译器编译时会产生不同的结果,因此即使使用 C89 也无法保证。但是在 C++0x 下是否有任何非人为的 C++98 代码改变行为的例子?
-
@Clinton:见stackoverflow.com/questions/5759232/…
标签: c++ gcc c++11 backwards-compatibility