编程
文章平均质量分 86
XIao_MinK
这个作者很懒,什么都没留下…
展开
-
C++17:std::variant/std::optional/std::any设计
文章目录前言稍微总结std::variant动机和设计内部实现boostSTLstd::optional动机和设计内部实现boostSTLstd::any动机和设计转换内部实现boostSTL前言2021年了。现在回顾一下c++17标准中的std::variant/std::optional/std::any三个库是怎么实现的。稍微总结这三个库基本都是实现可选语义:std::optional:存有T或者不存有值std::any:存有任意类型值(可以看作带类型信息的void*)std::var原创 2022-01-26 15:52:59 · 1472 阅读 · 0 评论 -
C++23:std::execution/unifex导读
文章目录分析导航一些解读介于翻译工作或标准文档理解困难,特开一篇导读。分析导航目前std::execution的技术分析中文博客中,来自purecpp的IndignantAngel(他也有知乎号)的解读比较丰富。西方有木焉也有一些文章。以上怎么都是腾讯游戏部的一些解读...原创 2021-08-20 14:52:23 · 1772 阅读 · 0 评论 -
unifex:C++现代异步模型先导
成为C++23的标准[std::execution](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p0443r13.html)将带给C++一个modern asynchronous model。本文将翻译[libunifex](https://github.com/facebookexperimental/libunifex/blob/master/doc/concepts.md)文档并梳理代码结构。**译注:下文的英文单词Concept翻译 2021-08-20 14:43:48 · 2461 阅读 · 6 评论 -
socket网络库设计——muduo观后感
文章目录对《muduo》封面提出疑问的一些解答网络库设计思路代码复用事件处理模型Reator vs. Proactor连接模型并发模型多线程安全主流语言网络库实现思路C/C++C#/JavaGolang/JavaScript/Lua/python...对《muduo》封面提出疑问的一些解答TCP协议真的有所谓的“粘包问题”吗?该如何设计消息帧的协议?又该如何编码实现分包才不会掉到陷阱里?TCP本身不存在“粘包问题”,因为TCP是基于字节流的协议,没有所谓的“包”。实际上“粘包问题”是上层协议消息原创 2021-07-06 15:29:35 · 847 阅读 · 0 评论 -
C++ 复制/移动语义学
文章目录默认构造函数机制返回值优化RVO实验平台:VS2019默认构造函数机制在类用户没有给类显式声明默认构造函数时,编译器只有在以下四种情况给类合成默认构造函数1:类成员有显式构造函数基类有显式构造函数(或基类成员有显式构造函数)类有虚函数(或基类有虚函数)虚继承基类简单来说:保证有构造函数的成员一定能执行他们的构造函数进行初始化(例类成员包含string成员,那么编译器一定保证string成员可以成功初始化);保证虚表成功生成。即便如此,对于类内不带有构造函数的成员(内置类原创 2021-03-17 11:13:04 · 859 阅读 · 0 评论 -
记录JavaScript this机制
ES6带来了箭头函数。本以为它是匿名函数的语法糖,于是就掉进了js的大坑里~原创 2021-02-04 14:30:45 · 226 阅读 · 0 评论 -
Object-Oriented vs. Functional Programming第四章
Conclusions面向对象语言vs函数式语言程序语言演变面向对象语言vs函数式语言在本报告中,我们已经讨论了许多函数式编程和现有的面向对象设计原则的关系。这些风格差异并没有人们认为的那么大。函数式编程强调通过高阶函数重用和组合行为,和不变性的数据结构也毫无疑问地可以增强我们代码的安全性,而在面向对象代码中也同样支持这些特性,一般能够获得从中益处的通常是这两种方式。我们总是想让代码编写变得更...翻译 2019-05-29 22:01:38 · 253 阅读 · 0 评论 -
Object-Oriented vs. Functional Programming第三章
Design Patterns翻译 2019-05-28 20:46:42 · 281 阅读 · 0 评论 -
Object-Oriented vs. Functional Programming第二章
SOILD Principleslambda式SOLID原则单一功能原则开闭原则抽象lambda式SOLID原则SOLID原则是设计面向对象程序的五大基本原则:单一功能(Signgle responsibility)、开闭原则(Open/closed)、里氏替换(Liskov substitution)、接口隔离(Interface segregation)、依赖反转(Dependency i...翻译 2019-05-07 19:07:35 · 207 阅读 · 0 评论 -
从单例模式讲起
文章目录从单例模式讲起单例模式1. 意图2. 动机3. 适用性4. 优点5. 实现RAII(Resource Acquisition Is Initialization)1. 值语义2. Rule of Three/Tow/Five/Zero不可变对象1. Risks of mutation2. 可变方法(Mutating method)和迭代器(Iterator)3. Useful immu...原创 2019-01-09 13:16:30 · 287 阅读 · 0 评论