C++11新标准的新理解

C++11 里面有很多非常方便的标准类,令我感到,C++的功能越来越像JAVAl了,甚至说,越来越像脚本语言了。

其中,有thread,bind,function 三个功能我觉得最为有用,有趣。(当然,跟thread相关的还有mutex一类的东西)

 

bind可以强制的将各种各样的接口提前绑定好参数,然后返回一个我们规定的接口,传到任何地方,然后运行!

这个是多么的方便!!!简直让我感到编程是幸福的!!

 

thread,这个类直接提供了一个编译器支持的线程,只要用它,你的线程代码,就可以跨平台!!因为编译器的支持,它的效率应该不会太差!!

不知道C++标准的制定者,早点为啥不出这个东西。

 

最后function,这个东西,其实是和bind配合使用的(再加上lambda方法)构成了C++新标准的完美回调使用。

以前在使用STD标准的算法的时候,你是否感觉 find_if()最后一个参数,居然还要传一个函数,你妈妈的,我还需要在外面建立一个静态的函数,这不是逗比么?

出现了lambda之后,一切都不同了。这个bind我再慢慢说。

 

QT有个信号和槽,它归根结底,是编译了两遍,自己还有自己内部的观察者(其实就是自己的内核)支持,bind这东西一出,我感觉可以媲美QT的信号和槽。(因为它可能在方便上不如QT但是因为编译器的支持,效率!而且使用的时候不用任何依赖!)

假如我规定某种接口:

typedef function<void()> TypeFunc;

这样就像是一个自己定义的信号!

然后我们发现有一个接口:

void testFunc(int a, const string &str, doubli d);

然后我们: TypeFunc myFunc = bind(&testFunc, 某个int变量,某个string变量,某个double变量);

然后那个myFunc就可以留着了,什么时候用都行!

这样的意义在于,我们在类里面封装的东西简单,只需要在外部Bind好传进来就好!

我只能说,这功能简直太变态了。

因为bind甚至可以仅仅绑定某几个变量值,甚至顺序,留几个空位以后用!!!

 

以往的C++代码,多态的复杂性,会使得层次越来越深,当我们回顾代码的时候,那一层层的逻辑,让人崩溃。

QT使用信号和槽,使得代码的逻辑变得简单!赞一个!

现在C++11的bind,或许可以使得C++的代码,逻辑像C一样层次鲜明,封装像C++一样强大!

 

仅仅我一点点小小的观点!以后慢慢验证!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值