我们需要用c ++ 11重新编译库吗?

use*_*100 8 c++ backwards-compatibility recompile c++11

这是一个非常不知情的问题,但是:

我想开始使用C++ 11.我可以继续使用我的旧gcc 4.2.1编译器编译的大型库集合,还是需要使用新的编译器重新编译它们?我会想(或希望)答案是否定的,但我只是一个讨厌的人.

这样我至少可以消除部分无知,你能解释为什么在任何一种情况下?

谢谢

Mat*_* M. 9

是的你应该.

较弱的原因不是二元兼容性,问题在于期望.启用C++ 11的编译器可以使用许多功能(在其中移动构造函数)并在适当时使用它们.而这仅仅是冰山一角的冰山一角,还有其他一些不兼容(auto,0及其与指针的互动,...).

这意味着根据C++ 11标准,标题中的任何内联方法可能会突然被不同地解释.

更强的原因是每个版本的编译器都带有自己的标准库实现.你真的不想开始混合各种版本,特别是当它们经历了这样的重大变化时(再一次,rvalue引用......).

相信我,现在重新编译更简单,而不是有唠叨的想法,出现的每个错误可能是由于新旧库之间的不兼容...