tangclfs
码龄11年
关注
提问 私信
  • 博客:81,936
    81,936
    总访问量
  • 94
    原创
  • 415,448
    排名
  • 9
    粉丝
  • 0
    铁粉

个人简介:喜欢安静、喜欢思考,喜欢自由自在、喜欢没有烦恼...

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2014-07-05
查看详细资料
个人成就
  • 获得91次点赞
  • 内容获得7次评论
  • 获得92次收藏
  • 代码片获得204次分享
创作历程
  • 7篇
    2023年
  • 7篇
    2022年
  • 9篇
    2021年
  • 25篇
    2020年
  • 11篇
    2019年
  • 22篇
    2016年
  • 13篇
    2015年
成就勋章
TA的专栏
  • Scheme
    34篇
  • C++
  • FreeBSD
  • Ninety-Nine Scheme Problems
    34篇
  • 啼笑皆非
    1篇
兴趣领域 设置
  • 数据结构与算法
    排序算法
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

【C++】替代--whole-archive的一种方式

上篇文章《C++自动注册的工厂与--whole-archive》提到了--whole-archive选项在自动工厂示例的必要,“貌似也没其他方法了”。这篇文章介绍另一种可以替代的方式,并分析其优缺点,采用的代码示例同上篇文章。文章最后附代码。方法介绍ld链接器提供了另外一组选项解决符号依赖的问题。-u symbol--undefined=symbol上面的选项用来告诉链接器symbol符号在最终...
原创
发布博客 2023.11.13 ·
690 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++自动注册的工厂与--whole-archive

上篇文章《静态库和链接选项--whole-archive》提到--whole-archive的一个应用场景:C++自动注册的工厂,这篇文章来填坑。预备知识我们经常用工厂类或工厂方法统一管理资源,实现资源的创建和使用之间的解耦,调用者无需关心资源创建的细节,直接到工厂申请创建好的资源即可。一般情况下,资源提供了统一的接口供使用者调用,到工厂的获取也采用统一的方式,极大地简化了编码,尤其是资源创建比较...
原创
发布博客 2023.11.09 ·
1264 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

【C++】静态库和链接选项--whole-archive

欢迎大家关注公众号最近在迁移服务到Linux,不少人遇到未定义的符号之类的错误无所适从。简单的情况不做介绍,比如库路径不对等,最近几篇文章主要介绍库依赖相关的情况。预备知识静态库静态库实际上是二进制目标文件的集合。生成目标文件,需要用到-c选项;打包静态库用到ar命令。$g++-ca.cpp$arrcsliba.aa.o第一条命令生成a.o目标文件。第二条将a.o打包进liba.a...
原创
发布博客 2023.11.06 ·
1582 阅读 ·
3 点赞 ·
1 评论 ·
10 收藏

【C++】弱类型的C++

(点击上方公众号,可快速关注)C++是强类型语言吗?在很多人眼里至少它不算弱类型语言,因为它在C语言的基础上类型增强了很多,如,nullptr_t类型区分整型的NULL、enum class 增强了作用域等。但由于兼容C语言,所以语言的某些部分永远“强”不起来,所以,一定要记住:C++是弱类型语言。强类型语言在编译时能给予程序更多的安全保证,所以经常有人说,程序编译通过了基本就没bug了,C++则...
原创
发布博客 2023.09.12 ·
273 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

【C++】引用重新赋值?

(点击上方公众号,可快速关注)前段时间解决了一个关于引用的bug,原因是引用“重新赋值”造成的,原来的代码逻辑关于队列的选择,为了凸显问题,这里使用一个简单的例子重写。示例代码如下:inta=1;intb=2;//默认取aint&c=a;//若满足某种条件,取bc=b;从代码注释可以看出来,这段代码希望实现的效果是:引用c可以根据条件选择指向的变量。...
原创
发布博客 2023.05.15 ·
751 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

工具推荐二

(点击上方公众号,可快速关注)GUI框架我是个后端程序员,使用GUI框架的机会很少,主要用来编写个人或工作中的一些小工具上,经验有限,仅供参考。Tk框架这个框架tcl语言自带,在python里由pytk包提供。Python默认的IDLE编辑器的界面就是pytk编写的。它功能简单,性能也一般,相对应地学起来也简单,适合一些小的个人项目。Java系框架早期的awt已淘汰,swing未来堪忧,即使更现代...
原创
发布博客 2023.05.12 ·
321 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

工具推荐其一

(点击上方公众号,可快速关注)工欲善其事,必先利其器。总结一下这些年用得一些比较顺手的工具,纯主关看法,希望对大家有所帮助。编程语言因为工作和兴趣爱好,用过很多编程语言,包括C/C++、Java、C#、Python、JavaScript、汇编、SQL、Go、Rust、Lua、Lisp、Prolog、Haskell、Idris、Scheme、Bash、HTML等,每种语言都有其特点,这里简单介绍它们...
原创
发布博客 2023.04.18 ·
207 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【C++】浅谈C++中的错误处理【改】

(点击上方公众号,可快速关注)完备的错误处理是健壮的程序必不可少的。在C++中,错误处理主要通过两种形式:函数返回值简单起见,C中的errno也归为这一类。异常处理机制,try…catch函数返回值函数通过返回值告诉调用者具体的错误,简单明了,在C/C++中被广泛使用。基本的使用方式不再赘述,仅讨论常见问题的解决方式。嵌套深如下面的伪代码:if(func1()==Sucess){.....
原创
发布博客 2022.11.28 ·
160 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【C++】小而快的Ninja

(点击上方公众号,可快速关注)CMake是C++事实上的标准构建生成器(Build generator),之所以叫生成器,是因为它通过分析CMakeLists.txt为构建系统生成真正的构建文件,如Makefile、VS的sln文件等。大部分上下文中,构建生成器跟构建系统指的是一回事。CMake虽应用广泛,但难用程度和语法的迷惑程度远高于类Python语法的Meson,有兴趣的朋友的可以看下(ht...
原创
发布博客 2022.11.27 ·
768 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

【C++】浅谈C++中的错误处理

(点击上方公众号,可快速关注)完备的错误处理是健壮的程序必不可少的。在C++中,错误处理主要通过两种形式:函数返回值简单起见,C中的errno也归为这一类。异常处理机制,try…catch函数返回值函数通过返回值告诉调用者具体的错误,简单明了,在C/C++中被广泛使用。基本的使用方式不再赘述,仅讨论常见问题的解决方式。嵌套深如下面的伪代码:if(func1()==Sucess){.....
原创
发布博客 2022.11.24 ·
271 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【算法】三层嵌套循环的时间复杂度

(点击上方公众号,可快速关注)问题在中国大学MOOC听北京大学的《算法初步》课程,第一章有道课后习题比较典型,是关于三层循环的时间复杂度的评估。问题是这样的:解法一作为选择题,最直接的方法就是通过代入法验证结果对不对。当n=4,此时c只能是3,b只能是2,a只能为1,所以语句执行次数为1。将n=4带入上A、B、C三个选项,看看哪一个等于1,这道题比较直接,代入n=4的情况就能得到答案C。否则,就多...
原创
发布博客 2022.09.20 ·
1105 阅读 ·
2 点赞 ·
1 评论 ·
5 收藏

【C++】为什么floor函数返回浮点数

(点击上方公众号,可快速关注)进入话题前先闲扯几句,聊一下今年的就业形势。最近出来两则新闻:1)一北航22届的朋友,拿跟去年几乎同样的简历找工作,去年收到了拿到了网易、快手、美团、百度、蔚来、B站的Offer,结果今年百度通过简历筛选,蔚来还在评估,快手和网易简历直接挂,阿里直接简历挂(去年是挂在hr面);2)毕业生企业就业率呈下降趋势,“985”毕业生涌入县城。感同身受,从20年疫情以来,就业行...
原创
发布博客 2022.09.16 ·
600 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

新人常有的一些不好习惯

(点击上方公众号,可快速关注)首先说明下,这里说的”新人“仅仅是我接触到的刚参加工作的新同事。肯定存在不少刚毕业的”老手“,比工作上的”老人“还老道。C++相关不好的习惯include 冗余头文件关于这一点,带来的主要副作用是给使用者增加了依赖,举个例子:假设一个http库提供了Get、Post等功能,大体这样子:#pragmaonce#include<string>#inc...
原创
发布博客 2022.09.05 ·
291 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【现代C++】类型推导与auto

(点击上方公众号,可快速关注)类型推导(Type inference 或 Type deduction),顾名思义就是编译器能自动推导出数据类型,免去了显式的类型声明。Java、C#等静态...
原创
发布博客 2022.03.11 ·
189 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【C++】巨坑-VC++的localtime_s的三宗罪

(点击上方公众号,可快速关注)前几天在运行一段代码的时候,发现localtime执行失败,由于代码没有判断返回值,后续对空指针操作导致段错误。所以,需要对该段代码增加保护判断,避免程序崩溃...
原创
发布博客 2021.06.22 ·
1664 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

【现代C++】自定义字面量-序:字面量(一)

(点击上方公众号,可快速关注)C++11引入了自定义字面量,由于这个语言特性的外延较大,为了系统介绍它,先把字面量的知识补全。在看语言规范的过程中,的确发现了好多知识点是以前没接触过的,这...
原创
发布博客 2021.06.21 ·
1114 阅读 ·
1 点赞 ·
0 评论 ·
7 收藏

【C++】再谈 STL reserve的坑

(点击上方公众号,可快速关注)前言之前写过一篇文章《STL reserve函数使用误区》,主要内容是说明一些标准模板类,比如,std::vector、std::string等,提供的res...
原创
发布博客 2021.06.08 ·
1149 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

【C++】std::endl只是换行?

(点击上方公众号,可快速关注)前言一直用std::endl输出换行符,理所当然认为下面的代码等价:std::cout<<"HelloWolrd"<...
原创
发布博客 2021.06.01 ·
784 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

【现代C++】新的字符串格式化方法

(点击上方公众号,可快速关注)本篇文章主要介绍现代C++字符串格式化的方法。在此之前,回顾了一些老的字符串格式化的方法,并分析各自的优劣。在最后给出了一种提供给老编译器的折中方案,因为新的...
原创
发布博客 2021.05.28 ·
12748 阅读 ·
4 点赞 ·
0 评论 ·
12 收藏

【现代C++】简洁的as_cast函数模板

(点击上方公众号,可快速关注)前言C++17标准库加入了as_const函数模板,它可以将给定的左值引用转为常量左值引用,用法也很简单。下面的例子中,假设myValue是MyType类型的...
原创
发布博客 2021.05.19 ·
545 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多