原文:(原创)用c++11打造好用的variant

variant类似于union,它能代表定义的多种类型,允许将不同类型的值赋给它。它的具体类型是在初始化赋值时确定。boost中的variant的基本用法: 用variant一个好处是可以擦除类型,不同类型的值都统一成一个variant,虽然这个variant只能存放已定义的类型,但这在很多时候已经够用了。 取值的时候,通过get lt T gt v 来获取真实值。然而,当T类型与v的类型不匹配 ...

2013-11-10 10:47 2 5138 推荐指数:

查看详情

原创)用c++11打造好用的any

  上一篇博文用c++11实现了variant,有童鞋说何不把any也实现一把,我正有此意,它的兄弟variant已经实现了,any也顺便打包实现了吧。其实boost.any已经挺好了,就是转换异常时,看不到详情,和boost.variant一样的问题。实现any比实现variant要简单,需要 ...

Wed Nov 13 03:21:00 CST 2013 1 9370
原创)用c++11打造类似于python的range

  python中的range函数表示一个连续的有序序列,range使用起来很方便,因为在定义时就隐含了初始化过程,因为只需要给begin()和end()或者仅仅一个end(),就能表示一个连续的序列 ...

Sat Feb 08 22:35:00 CST 2014 1 2474
delegate委托的C++实现--C++11/14(原创)

熟悉C#的人都清楚delegate,也清楚委托的作用。 实现观察者模式,在C++中的一种做法就是通过接口继承来实现,这无疑大大增加了耦合度。通过delegate变可以解除这种耦合。 下面是上班时间,偷偷实现的一个我的delegate。直接上码: 以下 ...

Fri May 16 06:59:00 CST 2014 0 3285
原创)用C++11的std::async代替线程的创建

  c++11中增加了线程,使得我们可以非常方便的创建线程,它的基本用法是这样的:   但是线程毕竟是属于比较低层次的东西,有时候使用有些不便,比如我希望获取线程函数的返回结果的时候,我就不能直接通过thread.join()得到结果,这时就必须定义一个变量,在线程函数中去 ...

Mon Jan 27 00:40:00 CST 2014 13 37626
原创)用C++11的std::async代替线程的创建

原创)用C++11的std::async代替线程的创建   c++11中增加了线程,使得我们可以非常方便的创建线程,它的基本用法是这样的:   但是线程毕竟是属于比较低层次的东西,有时候使用有些不便,比如我希望获取线程函数的返回结果的时候,我就不能 ...

Sat Dec 21 18:50:00 CST 2019 0 2152
原创C++11改进我们的程序之简化我们的程序(七)

这次要讲的内容是:c++11中的tuple(元组)。tuple看似简单,其实它是简约而不简单,可以说它是c++11中一个既简单又复杂的东东,关于它简单的一面是它很容易使用,复杂的一面是它内部隐藏了太多细节,要揭开它神秘的面纱时又比较困难。   tuple是一个固定大小的不同类型值的集合,是泛化 ...

Fri Sep 13 06:30:00 CST 2013 7 18676
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM