C++
JINGchenxue
这个作者很懒,什么都没留下…
展开
-
C++标准库
C++标准库提供了:1、语言特性的支持,内存管理,RTTI等2、单纯用语言难以实现的基本操作,提供一些工具,时间,编译时有理数运算,类型函数,move等3、底层的(“无锁”)并发编程设施4、基于线程的并发编程支持5、基于任务的并发的基本支持,如future和async6、比较难以实现的最优且可移植版本的函数,memmove()等7、可选的无用内存回收的基本支持,如declare_reachable...原创 2018-05-07 16:33:19 · 188 阅读 · 0 评论 -
GC和RAII+refcounting
RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等等)的简单技术。 RAII 的一般做法是这样的:在对象构造时获取资源,接着控制对资源的访问使之在对象的生命周期内始终保持有效,最后在对象析构的时候释放资源。借此,我们实际上把管理一份资源的责任托管给了一个对象。这种做法有两大好处: ...转载 2018-07-02 15:37:56 · 315 阅读 · 0 评论 -
move 和浅拷贝等
开始不能理解有了浅拷贝, 何必再有 move现在想通了, 理由如下一个对象只有一个 拷贝构造函数, 你只能要么实现浅拷贝(编译器提供), 要么实现深拷贝.c++11 提供了 move 语义, 这样你就可以同时实现 浅拷贝, 和深拷贝. 然后编译器就能根据对象的用途自动的选择好 move (浅拷贝)还是深拷贝....原创 2018-07-02 15:54:50 · 615 阅读 · 0 评论 -
boost::noncopyable
boost::noncopyable 比较简单, 主要用于单例的情况.通常情况下, 要写一个单例类就要在类的声明把它们的构造函数, 赋值函数, 析构函数, 拷贝构造函数隐藏到 private 或者 protected 之中, 每个类都这么干的话会非常地麻烦.但是有了 noncopyable 类之后, 只要让单例类直接继承 noncopyable, 一切都会迎刃而解.class noncopyabl...转载 2018-07-02 17:06:20 · 2838 阅读 · 0 评论