
C++代码
文章平均质量分 93
borehole打洞哥
程序猿,代码狂热爱好者。外加骨灰级果粉
展开
-
盘一盘C++的类型描述符(二)
《盘一盘C++的类型描述符》系列文章第2篇原创 2023-03-14 13:40:31 · 1237 阅读 · 4 评论 -
盘一盘C++的类型描述符(一)
《盘一盘C++的类型描述符》系列第一篇原创 2023-03-06 12:19:34 · 1333 阅读 · 2 评论 -
C++杂谈(一)
《C++杂谈》系列第一篇,主要介绍了C++与C的关系、关于C++开发环境的一些讲解原创 2023-02-28 13:10:36 · 1063 阅读 · 1 评论 -
C++模板元编程详细教程(之十一)
《C++模板元编程详细教程》系列的第11篇,也是完结篇,主要介绍了visit的实现方法、C++的模板范式,以及一些Q&A和感悟原创 2023-02-16 13:29:12 · 3037 阅读 · 9 评论 -
C++模板元编程详细教程(之十)
《C++模板元编程详细教程》的第10篇,主要介绍了用于处理variant的访问器原创 2023-02-14 13:50:42 · 1873 阅读 · 0 评论 -
C++模板元编程详细教程(之九)
《C++模板元编程详细教程》的第9篇,主要介绍了「多选一结构」的实现,也是std::variant的简化版实现。原创 2023-02-13 13:31:42 · 2135 阅读 · 4 评论 -
C++模板元编程详细教程(之八)
《C++模板元编程详细教程》系列文章的第8篇,主要介绍如何生成序列,以及通过序列来展开元组的方法。原创 2023-02-09 13:26:16 · 2526 阅读 · 2 评论 -
C++模板元编程详细教程(之七)
《C++模板元编程详细教程》的第7篇,主要介绍一些高级的类型处理方式,以及void_t的用法原创 2023-02-06 13:57:16 · 2768 阅读 · 5 评论 -
C++模板元编程详细教程(之六)
C++模板元编程详细教程的第六篇,主要介绍基础的类型处理模板元原创 2023-02-01 13:50:57 · 2874 阅读 · 7 评论 -
C++模板元编程详细教程(之五)
《C++模板元编程详细教程》系列文章的第5篇,主要介绍了模板元编程两大要素的第一要素——静态数值计算原创 2023-01-31 13:44:26 · 3922 阅读 · 0 评论 -
C++模板元编程详细教程(之四)
《C++模板元编程详细教程》系列文章的第4篇,主要介绍了偏特化匹配和SFINAE原创 2022-12-28 14:20:34 · 3350 阅读 · 5 评论 -
C++为什么会有这么多难搞的值类别?(下)
《C++为什么会有这么多难搞的值类别》系列文章的下篇。主要介绍了C++17复制省略之前的返回值处理方式,以及移动语义的相关内容。原创 2022-12-26 16:10:12 · 1659 阅读 · 3 评论 -
C++为什么会有这么多难搞的值类别?(上)
《C++为什么会有这么多难搞的值类别?》系列文章的上篇,主要以C语言到汇编的角度解释了值类型诞生的初衷,以及C++的「语义」和「实现」的方式原创 2022-12-16 23:02:46 · 1084 阅读 · 1 评论 -
C++模板元编程详细教程(之三)
《C++模板元编程详细教程》系列文章的第3篇,主要介绍的是模板的链接方式和模板的特化原创 2022-12-15 12:54:06 · 3530 阅读 · 3 评论 -
C++模板元编程详细教程(之二)
C++模板元编程详细教程系列文章的第二篇,主要介绍了模板的参数自动推导。原创 2022-12-08 12:50:49 · 4493 阅读 · 6 评论 -
C++模板元编程详细教程(之一)
《C++模板元编程详细教程》系列文章的第一篇,主要介绍了模板的概念以及基本的模板语法和相关示例。原创 2022-12-02 18:11:01 · 15722 阅读 · 8 评论 -
C++20之Module(浅析)
对C++20中Module进行分析和简单使用示例原创 2022-10-19 15:02:19 · 4619 阅读 · 2 评论 -
C++20之Concpet(概念部分,之二)
本篇介绍了C++20中的concept的高级用法以及注意事项原创 2022-09-28 13:53:32 · 2137 阅读 · 5 评论 -
C++20之Concept(概念部分,之一)
本篇介绍了C++20中的一个重要概念——concept原创 2022-09-27 13:28:17 · 3302 阅读 · 2 评论 -
C++的缺陷和思考(七)
C++的缺陷和思考第七篇,完结篇,主要是总结和感受原创 2022-08-24 18:46:08 · 1827 阅读 · 8 评论 -
C++的缺陷和思考(六)
C++的缺陷和思考系列文章第六篇,主要介绍模板全特化、构造和析构调用虚函数问题、C++的3个经典二义性问题原创 2022-08-23 20:22:42 · 1600 阅读 · 5 评论 -
C++的缺陷和思考(五)
C++的缺陷和思考系列文章的第五篇,主要介绍new和delete、常量表达式、就地构造相关内容原创 2022-08-19 11:20:48 · 907 阅读 · 4 评论 -
C++的缺陷和思考(四)
C++的缺陷和思考(三)系列的第四篇。主要介绍私有继承、多继承、隐式构造、C风格字符串、char类型的问题。原创 2022-08-16 16:38:36 · 1401 阅读 · 4 评论 -
C++的缺陷和思考(三)
C++的缺陷和思考系列文章的第三篇。主要介绍auto推导策略、static关键字、POD类型和非平凡析构的问题原创 2022-08-15 16:52:46 · 1889 阅读 · 1 评论 -
C++的缺陷和思考(二)
C++缺陷和思考系列文章第二篇原创 2022-08-12 17:26:58 · 1539 阅读 · 4 评论 -
C++的缺陷和思考(一)
C++是一门古老的语言了,笔者作为C++专业程序员,想在这里分享一些C++的“缺陷”以及自己的心得体会原创 2022-08-09 20:05:12 · 3105 阅读 · 10 评论 -
C++的私有继承和EBO
Hello!大家好呀,近期逗比老师的一个学生问了我这样一个问题:“C++里的私有继承到底有什么意义?”不知道你有没有跟他一样的困惑。的确,我们在编写C++项目中,几乎是没有用过私有继承(这里包括protected继承和private继承),都是清一色的public继承。有的老师干脆直接告诉学生,你见到继承就是public,其他那俩是历史原因,当它不存在就好了。这种说法呢,其实也有一定道理,但也不全对。对的部分在于:C++中,确实只有public继承才表示的OOP理论中的“继承”,而私有继承其实对应的是O原创 2022-04-08 13:24:55 · 821 阅读 · 1 评论 -
std::vector扩容时为何进行深复制?
引子我们知道,std::vector之所以可以动态扩容,同时还可以保持顺序存储,主要取决于其扩容复制的机制。当容量满时,会重新划分一片更大的内存区域,然后将所有的元素拷贝过去。但是笔者却发现了一个奇怪的现象,std::vector扩容时,对其中的元素竟然进行的是深复制。请看示例代码:#include <iostream>#include <vector>struct Test { Test() {std::cout << "Test" <<原创 2021-08-06 13:33:20 · 2839 阅读 · 2 评论 -
深入解析C++的type_traits
C++的type_traits是一套纯粹编译期的逻辑,可以进行一些类型判断、分支选择等,主要用于模板编程。使用type_traits并不难,但是我们希望能够更加深入了解其实现方式,与此同时,可以更进一步体验C++的模板编程。本篇文章旨在引导大家自行实现type_traits的基础代码。模板编程不像常规的代码,可以有if-else这些流控制语句,我们需要充分利用模板、模板特例、类型转换等特性来实现编译期的一系列判断和类型转换。定义基础常量第一步,我们需要定义true和false两个常量,所有的type原创 2021-08-03 18:11:38 · 3645 阅读 · 0 评论 -
C++17之std::apply与std::make_from_tuple
C++17之std::apply与std::make_from_tupleC++17中有两个有意思的语法,是关于std::tuple(或std::pair、std::array等)与函数参数转化的问题的。今天这篇文章我们来研究一下。std::applystd::apply最主要的作用就是把tuple转化为函数参数,然后去调用函数。请看例子:#include <iostream>int sum(int a, int b, int c) { return a + b + c;}原创 2021-07-29 20:07:12 · 5776 阅读 · 0 评论 -
深入C++成员函数及虚函数表
深入C++成员函数及虚函数表大家好!这次逗比老师要和大家分享的是C++中的成员函数,我们会深入解析C++处理对象成员时的方式,还有关于成员函数指针、虚函数表等问题的深入研究。简单对象的内存布局在介绍其他问题之前,咱们先来研究一下,一个C++对象在内存中的存储布局。首先,如果是POD类型的对象,那么布局方式和C中的结构体相同,按照定义的顺序排布所有成员,并且会在适宜的时候进行内存对齐。例如下面例程我们写了一个简单的用来打印一个对象内部结构(十六进制方式)的代码:#include <io原创 2020-12-08 01:52:25 · 844 阅读 · 1 评论 -
C++的堆区使用以及智能指针
Hello亲们!逗比老师又回来啦!今天我们的话题是C++11中的智能指针。 我们知道,指针,一直以来在C语言当中就占据着统治地位,逗比老师也曾经说过,如果你不会指针,那么你就不要说你会C语言。而C++作为C的超集,自然,也少不了使用指针。但是,由于类的加入,它的构造和析构相比标准类型都要复杂很多。利用普通的指针来管理对象有一些时候就会显得不是很方便,而且,我们可能会在代码中大量出......原创 2020-01-12 01:40:50 · 2309 阅读 · 3 评论 -
C++11中的右值引用(对比左值引用和常引用)、移动构造函数和引用标识符
Hello!各位同学们大家好!逗比老师最近说起来还是挺尴尬的,为什么这么说呢?因为以前我对自己的C++水平还是相当自信的,经常以“精通”来自我评价。但是最近发现自己好像对C++11当中很多特性还是一知半解,有的甚至完全没听过。实在是惭愧啊。虽然说C++11也是几乎10年前的产物了,但是由于这次大更新已经完全改变了C++这门语言的整体画风了,所以至今仍然值得我们去仔细研究。否则总感觉自己写的...原创 2019-09-15 14:17:36 · 1003 阅读 · 0 评论 -
C++模板和模板特例(防坑指南)
大家好啊!逗比老师又和大家见面了!今天要给大家分享的是C++中的模板。不过并不是基础教程,而是以“避坑”为主。所以呢,可能更适合有一定C++基础的同学。当然了,如果你正在被这个恶心的C++模板困扰,那么,你来对地方了! 那么首先,我们举一个栗子给大家吃(呸~~给大家听)。假如我们要做的事,是接受一个变量作为圆的半径,然后返回圆的面积。(emmm...这里栗子很逗比,原谅我实在想不...原创 2019-09-07 00:59:34 · 710 阅读 · 0 评论 -
迪杰斯特拉算法
Hello!大家好!逗比老师好久没来看大家啦!没办法,太忙,程序猿就是这样,比大猩猩忙多了,今天回来看看大家,还真的有点小激动哈,小激动。 不过当然了,来肯定不能空手来,最近逗比老师有个学生啊,抱了一摞书过来找我,刚开始我以为他让我帮他卖废品呢,后来一问才知道,拿了一摞书不是讲数据结构的就是讲算法的,哦对,好像还有本离散数学,每本书都窝了角,窝角的那一页上面字写得密密麻麻,荧光笔也给划了原创 2016-10-25 00:33:14 · 907 阅读 · 1 评论 -
C++中的命名空间、using用法、区域运算符(::)详解
大家好!逗比老师又来给大家逗比啦!今天我们来逗比的内容,是C++中特别特别特别**疼的内容,这部分内容尤其对于C程序员、OC程序员来说尤为费解。那么废话不多说,我们先来进入第一个内容——命名空间。先问你个问题哈,你是不是在写C++代码的时候,脊髓反射式的写一个using namespce std; 但其实你并不了解这句话什么意思?哈哈,如果你中枪了,那么你就更需要好好把它搞清楚了。那么什么原创 2016-05-03 23:43:18 · 9259 阅读 · 4 评论 -
关于OC中的Block,Swift中的闭包,C++11中的lambda表达式等匿名函数详解
Hello,大家好啊!逗比老师又来给大家逗比啦!今天咱们逗比的内容,就来围绕一个比较棘手的问题——匿名函数。我有一个朋友在学习做iOS开发,他最近就在被这个Block缠绕弥漫,感觉云里雾里,所以希望我来详细讲解一下相关的内容。相信不止他一个,遇到此类问题的人一定不占少数,所以,今天逗比老师就来给大家分享一下这个部分我个人的详细见解。我们先把视野拉回到C语言中。在C语言中定义一个函数,相信是一件...原创 2016-03-28 13:25:59 · 2285 阅读 · 0 评论 -
输入输出流运算重载模板
C++中自定义类的对象放入输入输出流中的实现方法原创 2016-02-19 17:55:03 · 508 阅读 · 0 评论