C++0x将提供何种新的语言特性呢?
优质
小牛编辑
132浏览
2023-12-01
你当然不会仅仅因为别人的一个想法,就给语言添加一个特性。事实上,关于C++,基本上每一个最现代化的语言特性都有人向我建议过,试着想象一下,C99、C#、Java、Haskell、Lisp、Python还有Ada的扩展集会是个什么样子?(译注:如果想着把这些语言的特点都集合到C++上,那C++就是一个四不像了)我们想问题要想的更加深入些,记住,即使标准委员会表决认为某个旧特性是不好的,完全剔除掉也是不可行的:事实表明,用户会迫使每一个开发者在兼容选项下(或默认)继续提供过时甚至已被禁止的特性达几十年。
为了试着从洪水般的建议中选择合理的建议,我们设计了一套具体的设计目标。我们不应该完全依据设计目标(?),而且它也不能完全的指导标准委员会的每个细节(而且依我所见也不可能完全)。
其结果就是,C++成为一种被大大改良过的抽象机制的语言。这个抽象的范围比起手工操作的专业代码,大大增加了,而且C + +可以优雅,灵活,零成本的表达出来。当我们提到“抽象”的时候,人们往往只是想到“分类”或“对象”。C++0x中远不止这些:用户自定义的类型可以清晰安全的表达出来,而且类型的范围已经随着初始化列表,统一初始化,模板别名,右值引用,默认的和删除函数(?)特性以及可变参数模板等特性而不断增长扩大。而有些特性则简化了它们的实现,比如auto, inherited constructors和 decltype。这些增强功能足以使C++0x像一种新的语言。
已被接受的语言功能的列表,请参阅功能列表 。
(翻译:Chilli)