zyfforlinux

专注linux内核,系统编程,C++服务器端编程,golang ,python/bash脚本编程,DevOps,分布式...

排序:
默认
按更新时间
按访问量

Item42 Consider emplacement instead of insertion

​ 如果你有一个容器,存放的是std::string类型,当你通过插入函数(如:insert、push_front、push_back或者是std::forward_list的insert_after)传递一个std::string类型的元素到容器中,逻辑上容器中就会有这个元素了。尽管这可能只...

2017-06-05 14:27:30

阅读数:722

评论数:0

Item41 Consider pass by value for copyable parameters that are cheap to move and always copied.

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 函数的参数传递方式有很多种,可以是值拷贝、传指针、传引用、甚至是移动。下面这个addName函数就是将外部传入的值存放到其内部的...

2017-05-29 20:37:30

阅读数:568

评论数:0

Item40 Use std::atomic for concurrency, volatile for specific memory

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ volatile关键字在C++中很少被使用,更准确来说是很少被正确使用,它的用途令人很迷惑,甚至这个关键字都不会出现在并...

2017-05-05 22:47:59

阅读数:1102

评论数:0

Item39 Consider void futures for one-shot event communication

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 有的时候对于一个任务来说,希望有一种机制可以和另外一个任务进行通信,尤其是那种异步运行的任务,并且会出现一种特定事件的任务,另...

2017-04-30 20:31:53

阅读数:933

评论数:0

Item38 Be aware of varying thread handle destructor behavior

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 在Item37中解释过一个状态为joinable的std::thread对象其底层对应一个系统线程。std::future对象和std...

2017-04-29 23:45:19

阅读数:697

评论数:0

程序的机器级表示

2017年4月趁着临近毕业时间比较充裕,就买了一本深入理解计算机系统(第三版),这本书的第二版之前浅浅的读过一遍只对里面的编译与链接章节印象深刻,其他章节对我来说完全陌生,我深知这本书的好,于是重新拾起这本书。为了加深自己的记忆就开始写博客记录自己的读书笔记。 第三章 程序的机器级表示 gcc4....

2017-04-29 09:25:40

阅读数:473

评论数:0

信息的表示与处理

2017年4月趁着临近毕业时间比较充裕,就买了一本深入理解计算机系统(第三版),这本书的第二版之前浅浅的读过一遍只对里面的编译与链接章节印象深刻,其他章节对我来说完全陌生,我深知这本书的好,于是重新拾起这本书。为了加深自己的记忆就开始写博客记录自己的读书笔记。 第二章 信息的表示与处理 如果值x是...

2017-04-16 22:01:32

阅读数:316

评论数:0

Item37 Make std::threads unjoinable on all paths

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 每一个std::thread对象都有两种状态,一个是joinable状态,另外一个则是unjoinable状态。状态是j...

2017-04-15 21:31:15

阅读数:776

评论数:0

计算机系统漫游

2017年4月趁着临近毕业时间比较充裕,就买了一本深入理解计算机系统(第三版),这本书的第二版之前浅浅的读过一遍只对里面的编译与链接章节印象深刻,其他章节对我来说完全陌生,我深知这本书的好,于是重新拾起这本书。为了加深自己的记忆就开始写博客记录自己的读书笔记。 第一章: 计算机系统漫游 信息就是位...

2017-04-10 16:22:31

阅读数:438

评论数:0

Item36 Specify std::launch::async if asynchronicity is essential

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 当你调用std::async执行一个函数或者是可调用对象的时候,你通常会试图让这个函数异步的执行,但是std::async并...

2017-03-29 17:44:16

阅读数:613

评论数:0

Item35 Prefer task-based programming to thread-based

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ C++11第一次将并发引入到了语言和标准库中,这使得C++程序员们终于可以直接写跨平台的多线程程序了,不用再自己去写不同平台...

2017-03-29 12:08:23

阅读数:461

评论数:0

Item34 Prefer lambdas to std::bind

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ C++11中的std::bind是对C++98中的std::bind1st 和std::bind2nd的改进和继承。而std...

2017-03-27 19:49:15

阅读数:546

评论数:0

Item33 Use decltype on auto&& parameters to std::forward them

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 在C++14中最令人激动的特性当属通用lambda了,通用lambda指的就是使用auto来作为lambda的参数。实现通...

2017-03-27 13:41:57

阅读数:326

评论数:0

Item32 Use Init capture to move objects into closures

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 一些时候Lambda的值拷贝和引用两张捕获模式都没有办法满足你的需要,比如当你有一个可移动的对象,你希望可以将这个对象移动到闭...

2017-02-12 14:34:12

阅读数:374

评论数:0

Item31 Avoid default capture modes

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ C++11中Lambda表达式给C++带来了很大的改变,通过Lambda可以很方便的创建一个函数对象,这对于C++的开发来说影...

2017-02-12 12:26:34

阅读数:384

评论数:0

Item30 Familiarize yourself with perfect forwarding failure cases

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 在C++11中最为显著的一个新特性,当属完美转发了,是的它很完美,和它的名字一样,转发两字意味着一个函数将其参数传递给另外一个...

2017-02-06 21:57:01

阅读数:366

评论数:0

Item29 Assume that move operations are not present,not cheap,and not used

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 在C++11新增的特性中,移动语义毫无疑问是最为重要的特性,有了这个特性后,对于STL容器的移动操作变的和拷贝一个指针一样高效...

2017-01-16 22:25:18

阅读数:351

评论数:0

Item28 Understand reference collapsing

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 在Item23中详细的介绍了std::move和std::forward的实现原理,并给出了std::move一种典型实现,但...

2017-01-08 22:42:34

阅读数:833

评论数:0

Item26 Avoid overloading on universal references

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 在正式进入本文主题之前先来看一段代码,这段代码的目的是纪录下当前的日期和时间,并纪录一下名字到全局的数据结构中,代码如下:st...

2016-12-27 22:44:49

阅读数:697

评论数:0

Item25 Use std::move on rvalue reference, std::forward on universal references

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 右值引用只能绑定到那些可以移动的对象上,如果你有一个右值引用的参数,你应该知道这个参数是用来接收可以移动的对象的。而一个通用引...

2016-12-27 19:44:28

阅读数:654

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭