深入应用C++11
文章平均质量分 69
铲灰
平凡的一个人
展开
-
使用C++11开发一个半同步半异步线程池
使用C++11开发一个半同步半异步线程池原创 2023-12-14 09:42:09 · 143 阅读 · 0 评论 -
C++11改进观察者模式
C++11改进观察者模式原创 2023-12-06 09:12:27 · 426 阅读 · 0 评论 -
C++11改进单例模式
C++11改进单例模式原创 2023-12-04 21:03:11 · 327 阅读 · 0 评论 -
C++11的异步操作(std::future,std::promise,std::packaged_task,std::async )
C++11的异步操作(std::future,std::promise,std::packaged_task,std::async )原创 2023-12-02 09:36:53 · 137 阅读 · 0 评论 -
C++11中的call_once/once_flag使用
C++11中的call_once/once_flag使用原创 2023-11-29 09:38:20 · 139 阅读 · 0 评论 -
C++11的原子变量
C++11的原子变量原创 2023-11-29 09:22:16 · 105 阅读 · 0 评论 -
C++11的条件变量
C++11的条件变量原创 2023-11-28 09:26:43 · 264 阅读 · 0 评论 -
C++11的互斥量
互斥量是一种同步原语,是一种线程同步的手段,用来保护多线程同时访问的共享数据。C++11中提供了如下4种语义的互斥量(mutex):1、std::mutex:独占的互斥量,不能递归使用。2、std::mutex_mutex:带超时的独占互斥量,不能递归使用。3、std::recursive_mutex:递归互斥量,不带超时功能。4、std::recursive_timed_mutex:带超时的递归互斥量。原创 2023-11-27 10:29:28 · 483 阅读 · 0 评论 -
C++11的线程
用std::thread创建线程非常简单,只需要提供线程函数或者线程对象即可,并可以同时指定线程函数的参数。在上例中,函数func将会运行于线程对象t中,join函数将会阻塞,直到线程函数执行结束,如果线程函数有返回值,返回值将被忽略。如果不希望线程被阻塞执行,可以调用线程的detach方法,将线程和线程对象分离。通过detach,线程就和线程对象分离了,让线程作为后台线程去执行,当前线程也不会阻塞了。原创 2023-11-24 09:28:23 · 405 阅读 · 0 评论 -
C++11的weak_ptr弱引用的智能指针
弱引用指针weak_ptr是用来监视shared_ptr的,不会使引用计数器加1,它不管理shared_ptr内部的指针,主要是为了监视shared_ptr的生命周期,更像是shared_ptr的一个助手。weak_ptr没有重载操作符*和->,因为它不共享指针,不能操作资源,主要是为了通过shared_ptr获得资源的监测权,它的构造函数不会增加引用计数,它的析构不会减少引用计数,纯粹只是作为一个旁观者来监视shared_ptr中管理的资源是否存在。原创 2023-11-22 09:34:18 · 207 阅读 · 0 评论 -
C++11的unique_ptr独占的智能指针
unique_ptr不允许复制,但可以通过函数返回给其他的unique_ptr,还可以通过std::move来转移到其他的unique_ptr,这样它本身就不再拥有原来指针的所有权了。unique_ptr是一个独占型的智能指针,它不允许其他的智能指针共享其内部的指针,不允许通过赋值将一个unique_ptr赋值给另外一个unique_ptr。而std::shared_ptr ptr(new int [10]);原创 2023-11-21 09:12:49 · 46 阅读 · 0 评论 -
C++11的shared_ptr共享的智能指针
C++11的shared_ptr共享的智能指针原创 2023-11-20 09:29:30 · 154 阅读 · 0 评论 -
Optional类
【代码】Optional类。原创 2023-11-17 09:52:41 · 28 阅读 · 0 评论 -
C++11的可变参数模板函数
C++11的可变参数模板函数原创 2023-11-08 09:20:46 · 49 阅读 · 0 评论 -
c++11的emplace_back
c++11的emplace_back原创 2023-11-04 09:39:24 · 175 阅读 · 0 评论 -
forward和完美转发
TestForward(1):由于1是右值,所以未定的引用类型T&&v被一个右值初始化后变成了一个右值引用,但是在TestForward函数体内部,调用PrintT(v)时,v又变成了一个左值(因为在这里它已经变成了一个具名的变量,所以它是一个左值),因此,第一个PrintT被调用,打印出了"lvalue"。std::move(value)是独立于值的右值引用,一个右值引用参数作为函数的形参,在函数内部再转发该参数的时候已经变成了一个左值,并不是它原来的类型了。上面的参数都没有按照原本的类型进行转发。原创 2023-11-03 20:38:53 · 142 阅读 · 0 评论 -
C++11类型推导
C++11类型推导原创 2023-10-16 10:51:11 · 58 阅读 · 0 评论 -
C++11的decltype关键字
decltype关键字原创 2023-10-19 09:28:53 · 78 阅读 · 0 评论 -
C++11的for循环
在C++03/98中,不同的容器和数组,遍历的方法不尽相同,写法不统一,也不够简洁,而C++11基于范围的for循环以统一,简洁的方式来遍历容器和数组,用起来更方便了。原创 2023-10-21 15:16:28 · 274 阅读 · 0 评论 -
C++11的std::function和bind绑定器
C++11的std::function和bind绑定器原创 2023-10-28 12:44:36 · 152 阅读 · 0 评论 -
C++11的lambda表达式
C++11的lambda表达式用法原创 2023-10-28 14:01:54 · 196 阅读 · 0 评论 -
C++11右值引用
C++11右值引用原创 2023-11-01 09:38:00 · 66 阅读 · 0 评论 -
C++11的move语义
C++11的move语义原创 2023-11-02 09:10:41 · 119 阅读 · 0 评论