当前位置:  开发笔记 > 编程语言 > 正文

你最喜欢的C++ 0x功能是什么?

如何解决《你最喜欢的C++0x功能是什么?》经验,为你挑选了15个好方法。

正如我们许多人所知道的那样(许多人,更多人不知道),C++目前正在进行下一次国际标准修订的最终起草工作,预计将在大约2年内发布.草案和论文目前可从委员会网站获得.正在添加各种新功能,最大的概念和lambda.维基百科有一篇非常全面的文章,其中包含许多新功能.GCC 4.3及更高版本实现了一些C++ 0x功能.

就新功能而言,我非常喜欢类型特征(以及适当的概念),但我的确定领导者是可变参数模板.直到0x,长模板列表通常涉及Boost预处理器,并且编写起来非常不愉快.这使得事情变得更加容易,并且允许使用可变参数模板将C++ 0x模板视为功能完备的语言.我已经用它们编写了一些非常酷的代码,我迫不及待地经常使用它们!

那么您最热切期待的功能是什么?



1> Mark Cidade..:

用于变量类型推理的auto关键字


是的..有趣的是,C++ 0x中最微不足道的变化是最受欢迎的.它毕竟是我们的编码员所关心的:)是的,它真棒.
我梦见汽车.如果可用,我将在每个声明中使用它.4个字符的好处.
耶汽车!不再"for(vector >> :: const_iterator i; ...."!
哇噢!不再猜测要添加多少个星号; )

2> Chris Charab..:

Lambdas和初始化列表.

此外,这些更改使得最终将C++变为垃圾收集模型变得更容易,这看起来非常有趣.也许C++ 1x实际上会带来垃圾收集,但是0x/10只会为可能性做好准备.


GC阻止RAII.我宁愿拥有智能指针和RAII而不是GC.
哦不,不!RAII在Lisp中,C#虽然与C++略有不同,但是C++/CLI它在GCed类上具有析构函数,其行为与C++析构函数相同.
C++ 0x在您的基础中添加到您的代码中.得爱lambdas和初始化列表.

3> Robert Gould..:

我想要Rvalues参考.

所有其他新功能都是我们可以轻松实现的功能(唉功能).然而,到目前为止,C++中缺少Rvalues已经导致数百名模板库作者不得不"破解"破坏的Rvalue引用问题.


我假设你的意思是右值参考,我们已经有rvalues

4> Eclipse..:

变种模板!(结合r值参考给我们完美的转发!)



5> graham.reeds..:

线程和原子.

现在使用多核处理器,C++ 0x的规范应该是C++ 07.

G.


什么?你从哪里得到那个规则?委员会计划在0x之后更频繁地(约5年间隔)更新标准.当然,C++ 98和'03似乎距其不到10年.
除了它不可能.作为ISO标准,它不能每10年修改一次以上.所以2008年10月10日是最早设定新标准的.请注意,最后一次会议是在9月,预计会尽快批准.

6> Roddy..:

强烈输入的枚举得到我的投票.Pascal只有40年左右的时间,所以很高兴看到C++终于迎头赶上了.

但是,该标准的出版实际上是一个非事件.更重要的是,当您想要使用的功能实际上完全可靠地支持真实工具链时.有些人似乎真的喜欢编写符合标准的代码,这些代码无法在任何已知的编译器上编译.祝他们好运.



7> user22044..:

    它必须是一些Boost库的结合(shared_ptr <>并绑定列表顶部)

    对模板instatntiation的控制应该最终解决大量编译时间的问题,并使在大型项目中使用现代模板代码实际上是可行的.

    模板typedef

许多其他小而重要的东西,但它们在生产代码中很重要.



8> Greg Rogers..:

放下我的概念.但初始化列表,lambda和可变参数模板紧随其后.


太糟糕了,委员会决定不在C++ 0x中包含概念
我想大多数人都认为概念是一个好主意,他们不能很快确定合适的实施方案.

9> kervin..:

我无法在Null Pointer Type,Tuple Types或Regex之间做出决定.'Foreach'也在那里."智能指针"不言而喻...... :-)

基本上,我真的很期待这次更新.

就个人而言,我认为大量使用空指针类型会捕获很多错误.元组非常适合处理关系数据.很多很酷的东西.



10> Michael Burr..:

它并不大,但我喜欢真正的nullptr的想法.应该是git-go的关键词.


应该是nullptr不应该

11> TraumaPony..:

关闭我.



12> Andrew Stein..:

自动关键字



13> yesraaj..:

Lambdas概念



14> lornova..:

嵌套模板声明中的尖括号.

所以我将能够写作

std::vector> a;

而不是可怕的

std::vector > a;



15> snogglethorp..:

for (auto x : collection)迭代语法是非常酷,我认为...它字面上的4倍以上减少了许多环头的大小(迭代器类型往往是...详细)!

它还意味着你不必在循环体中取消引用迭代器(使用传统的迭代器循环,你总是必须使用*ii->...获取元素的值,但在这里你可以使用x),这在某些案例使代码看起来更好.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有