发布于 2013-05-23 02:20:48
C++11比Python3000更具破坏性。
它的破坏性较小,因为它包含较少的破坏变化和那些打破的变化是很少遇到的。
它更具有破坏性,因为它将极大地改变用C++编写代码和设计系统的方式。Python 3中的程序大多是按照Python 2中的方式编写的,这些变化大多是清理的,比如去掉旧的样式类。C++11 OTOH包含了一些功能,可以极大地改变您编写代码的方式:例如,内存模型、标准库并发原语、lambda文本和类型推断的组合,允许在语法上和概念上以Clojure或Haskell的方式进行轻量级的高级并发。
发布于 2013-05-22 17:11:18
C++98/03中有一些不受欢迎的特性,如auto_ptr、“寄存器”关键字等等。但在大多数情况下,如果您在C++98下编译的代码对C++11来说是可以的。唯一的突破是新的关键字(以及auto关键字的重用)。所以,除非您编写了使用以下语句的C++98代码
auto int x = 5; // auto means "on the stack"或者使用关键字'decltype‘或'nullptr’等作为变量名,您的代码在C++11下应该很好。
编辑:正如前面提到的,有更多的突破性更改,但它们不会影响平均C++98代码库。我记得我听过一个故事,讲述他们如何选择关键字'auto‘进行类型推断(不能保证它是真实的):每次关键字出现在许多大型代码库中时,他们都会做一次计数,并确定C 'auto’关键字基本上没有使用。例如:他们非常重视向后兼容性。
https://softwareengineering.stackexchange.com/questions/199054
复制相似问题