0%

今天我们来聊聊C++的function。std::function是从C++11开始支持的特性,它起什么作用?又有什么好处呢?

阅读全文 »

之前我已经向你介绍了C++中的std::move,它的作用是无论你传给它的是左值还是右值,通过std::move之后都变成了右值。而今天我们要介绍的std::forward则与之不同,它的作用是什么呢?

阅读全文 »

ffmpegX.png

FFMPEG是特别强大的专门用于处理音视频的开源库。你既可以使用它的API对音视频进行处理,也可以使用它提供的工具,如 ffmpeg, ffplay, ffprobe,来编辑你的音视频文件。

本文将简要介绍一下 FFMPEG 库的基本目录结构及其功能,然后详细介绍一下我们在日常工作中,如何使用 ffmpeg 提供的工具来处理音视频文件。

阅读全文 »

我最早了解到 sigslot 大概是在 2007年 左右,当时在QT中大量使用了 sigslot 的概念。 现在 WebRTC 中也大量使用了 sigslot 这种机制来处理底层的事件。它对我们阅读WebRTC代码至关重要。本篇文章就详细介绍一下 sigslot。

阅读全文 »

在C语言中我们经常要做类型转换,例如malloc函数分配内存时需要从void *转换成你指定的类型指针。如下面这样:

1
int* block = (int*)malloc(sizeof(int));

上面的代码是将void*转换成int*,这种转换方式在C语言中称为强制转换。它的好处是简洁,灵活;缺点是需要人来决定转换后类型是否正确,因此对开发人员的要求是很高的。

阅读全文 »

今天我们来聊聊C++的智能指针。C++从1983年诞生到现在已经有30多年历史了,为什么到现在还能如此流行呢(排名第四,2020年6月HelloGitHub榜单)?因为它具有很多其它语言所不具备的优势,比如说执行速度快,控制力更强等。同样的,有更多的同学会选择用Java(排名第二)等语言,这是因为它相对C++来说,它更简单,易上手,不用担心内存泄漏!

确实,内存泄漏在很长的一段时间里是影响人们学习C++的一个最重要的原因。不过C++也在不断进步中,智能指针的出现就大大降低了内存泄漏发生的风险。

下面我们就来细聊一下C++智能指针的方方面面,通过本文让你真正掌握C++智能指针。

阅读全文 »

使用C/C++语言的同学应该对const都比较了解,但对于初学者来说,const确是一个难肯的骨头,理解起来困难重重。今天我就带你重新学习一下C/C++的中的const

阅读全文 »

N多年没有写过 Window 程序了。为了研究 WebRTC 源码,这两天重新学习一下。还记得上大学的时候看过 《Windows95 程式设计》台湾版,对那本书印象极为深刻。一是当时国内确实没有一本写的那么深入的书籍,二是那本书翻译的特别好,让人一看就特别明白。10多年过多了,当时的情景还记忆犹新,也可见那本书写的有多好了。

阅读全文 »