![](https://img-blog.csdnimg.cn/0bc476a969fd42b1910931f8ac538fcd.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++探究
文章平均质量分 69
主要针对C/C++语言进行深入的探究与分析, 无论是基础的, 高级的, 还是偏学院派的, 我们都需要一一掌握.
我不是代码教父
编程20余年,回归本质''数学''.擅长: C/CPP/C#/ASM/Delphi/算法/Windows系统内核
展开
-
[原创]C++ 11的thread_local线程局部变量与Lambda表达式配合使用, 却引发致命的, 难以发现的冲突.
这几天在认真学习C++ 11标准以上的多线程规范. C++ 11标准中, 引入了thread_local线程局部变量, 顾名思义, 就是当一个变量具有thread_local属性时, 那么该变量在当前线程中会生成一个变量副本, 不会直接引用原变量. 这个特性在多线程时非常有用的. 但是, 今天在写一个测试代码时, 如果在线程中引入了Lamdba表达式, 并且尝试捕获thread_local线程局部变量时, 是失败的.原创 2024-06-01 15:31:30 · 327 阅读 · 0 评论 -
[原创](Modern C++)现代C++的std::forward()与&&的配合使用, 超级简单的代码示例.
网络太多关于std::forward()的文章, 但大多数都是解释得乱七八糟, 根本没有解释出这个std::forward()的使用场景和目的. 所以我写个简单的代码演示, 一目了然.原创 2024-05-18 11:17:39 · 328 阅读 · 0 评论 -
[原创](Modern C++)现代C++的std::vector的emplace_back()与push_back()的区别
(Modern C++)现代C++中, 新增了emplace_back()方法, 比push_back()的效率更高. 它们差别在于emplace_back()方法避免了拷贝(copy)和移动(move)的开销. 下面的代码可以演示出, 当调用emplace_back()方法追加元素的时候, 并没有触发类的拷贝构造函数.原创 2024-05-16 21:18:34 · 186 阅读 · 0 评论 -
[原创](Modern C++)现代C++的std::function, 强大的多态函数包装器(包含std::mem_fn使用方式).
std::function的主要作用是:存储, 复制和调用任何函数(通过指向它的指针), lambda表达式, 绑定表达式或其他函数对象, 以及指向成员函数的指针和指向数据成员的指针.原创 2024-05-15 11:18:41 · 302 阅读 · 0 评论 -
[原创](Modern C++)现代C++的std::bind花式绑定,使用方式大全.
std::bind是一个非常重要, 且非常实用的技术, 使用场景非常广泛. 简单通俗易懂解释就是: std::bind可以根据原有的函数对象, 映射出一个新的函数对象, 在映射的过程中, 新的函数对象的函数列表, 可以根据实际使用情况进行缩减.原创 2024-05-14 21:37:52 · 358 阅读 · 1 评论 -
[原创](Modern C++)现代C++的Lambda表达式常规概念以及细节探讨
(Modern C++)现代C++的Lambda表达式, 在C++11已经定型, 但是在此之后, C++14, C++17又开始进行扩展. 因此有必要做一些详细记录. 另外Lambda表达式的捕获, 隐藏很多细节, 因此有必要认真理解清楚.原创 2024-05-13 19:38:33 · 424 阅读 · 2 评论 -
[原创](Modern C++)现代C++的字符串与Windows API交互的正确方式.
在Windows系统中, 提供了大量的纯C接口的API, 比如最经典的SetWindowsText(), GetWindowsText(), 非常具有代表性, 因为它们涉及到了C语言的字符串指针的传递. 现在随着(Modern C++)现代C++的普及性, 为了代码更加纯粹和简单, 现在大多数都是用STL String的方式来处理指针的变换, 从而避免使用高损耗的CString类或者各种奇怪的ATL类.原创 2024-05-12 15:21:30 · 973 阅读 · 0 评论 -
[原创]C++98升级到C++20的复习旅途-个人感觉std::string_literals这个东西实现的不太人性化.
今晚在折腾std::string_literals这个东西, 因为是C++11引入的一个称为"user-defined string literal"的新概念. 认真看了代码演示之后, 就觉得有瑕疵.原创 2023-12-08 23:32:46 · 966 阅读 · 0 评论 -
[原创]C++98升级到C++20的复习旅途-从汇编及逆向角度去分析“constexpr“关键字
C++11引入了constexpr关键字来声明变量, 这种变量可在编译时求值并最终生成一个常量. 由于不会产生运行时开销, 所以编译能执行额外的优化来提高应用程序的性能.原创 2023-12-03 16:18:48 · 1422 阅读 · 0 评论 -
[原创][第I部分][编程基础]我的C++ 98复习并升级到C++20的复习旅途
最近在努力地学习C++20的相关知识点, 给自己订下一个小目标: 把自身已掌握的陈旧C++98, C++03逐步升级到C++20. 以适应现代C++开发的要求. 在学习和复习的过程中, 顺便记录疑惑点. 该复习过程会经历现代C++开发5大理论的学习. 当前已经完成了[第I部分][编程基础]的学习任务. 下一个阶段会进入[第II部分]的学习.原创 2023-11-28 20:00:00 · 1449 阅读 · 0 评论 -
[原创]C++98升级到C++20的复习旅途-“函数模板“
其实是源于"函数重载"的思想, 说白了"函数模板"就是针对参数类型重载, 在函数的参数列表用中 所有参数的类型都用一个简单的字符代替了. 比如用 T 这个字母就可以代替所有类型int, double, char 等等.原创 2023-11-27 14:23:37 · 1101 阅读 · 0 评论 -
[原创]C++, 利用std::wifstream和std::getline方式对目标字符串进行拆分
[简介]常用网名: 猪头三出生日期: 1981.XX.XX个人网站: https://www.x86asm.orgQQ交流: 643439947编程生涯: 2001年~至今[共18年]职业生涯: 16年开发语言: C/C++、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python、JavaScript开发工具: Visual St...原创 2019-03-14 13:53:56 · 1869 阅读 · 0 评论 -
用C++语言模拟实现"逢10进1"的计算法则
[作者] 常用网名: 猪头三出生日期: 1981.XX.XX生理特征: 男婚姻状况: 已婚个人网站: http://www.x86asm.comEmail: pliceman_110@163.comQQ交流: 643439947编程生涯: 2001年~至今[13年]职业生涯: 11年职业岗位: 软件架构/软件原创 2014-05-02 20:46:06 · 4798 阅读 · 0 评论 -
[原创]C++98升级到C++20的复习旅途-“作用域规则“
最近在努力地学习C++20的相关知识点, 给自己订下一个小目标: 把自身已掌握的陈旧C++98, C++03逐步升级到C++20. 以适应现代C++开发的要求. 在学习和复习的过程中, 顺便记录疑惑点.原创 2023-11-26 09:00:00 · 532 阅读 · 0 评论