SF
logger
logger
注册登录
关注博客
注册登录
主页
关于
RSS
浅谈如何实现自定义的 iterator 之二
hedzr
2021-10-31
阅读 9 分钟
1.8k
我打算实现一个简单而又不简单的树容器,让它成为标准的文件目录结构式的容器类型。但简单就在于,我只准备实现最最必要的几个树结构的接口,诸如遍历啦什么的。
实作中的 std::is_detected 和 Detection Idioms (C++17)
hedzr
2021-10-23
阅读 15 分钟
3.4k
确切地说,是指 std::experimental::is_detected, std::experimental::detected_t, std::experimental::detected_or。因为尚未被纳入正式库,所以在现行的编译器中,它们通常至少需要 C++17 规范指定,并包含专门的头文件 <experimental/type_traits>。参考这里:cppref。
理解 std::declval 和 decltype
hedzr
2021-10-21
阅读 6 分钟
6k
但如此简单的一个东西,怎么就需要新增一个关键字这么大件事呢?还是元编程闹的!元编程世界里,长的怀疑人生的一串模板类声明让人崩溃,重复书写它们更是累赘。例如一条运行时调试日志输出:
谈 C++17 里的 Observer 模式 - 3
hedzr
2021-09-20
阅读 5 分钟
2.3k
然后我们提到了,对于观察者模式来说,GoF 的原生定义当然是采用一个 observer class 的方式,但对于差不多 15 年后的 C++11 来说,观察者使用一个 class 定义的方式有点落伍了。特别是到了几乎 23 年后的 C++14/17 之后,lambda 以及 std::function 的支持力度变得较为稳定,无需太多“高级”手法也能轻松地包装闭包或者...
谈 C++17 里的 Builder 模式
hedzr
2021-09-05
阅读 12 分钟
3.7k
已经写了一篇 谈 C++17 里的 Factory 模式 ,后来又顺便肝了一篇 谈 C++17 里的 Singleton 模式 。看来是得要整一大堆了,对于懒散的人来说这很麻烦。我不知道是不是要打算会写完整个 GoF 的个人理解以及新的的实现,慢慢看吧,做了就做了。
谈 C++17 里的 Singleton 模式
hedzr
2021-09-03
阅读 7 分钟
5.6k
设计模式中最平民的 Pattern 是哪一个?几乎不会有任何分歧,那必须是单件模式了。所谓单件模式,是在 C 语言开发历史上经历了各种各样的全局变量失控的折磨后发展起来的一种技术,得益于 C++ 的封装能力,我们可以将各种各样的全局变量管控在一个全局静态类(或者说一个类中全都是静态变量的实现方式)中,从而防止任意...
C++ 的枚举类型
hedzr
2021-09-02
阅读 8 分钟
5.4k
Prologue: C++ 中的枚举类型应用以及转换到字符串的增强:AWESOME_MAKE_ENUM,... Original From: HERE
std::optional T 作为返回值时的优化问题,及其他相关
hedzr
2021-08-29
阅读 6 分钟
1.6k
它的用意足够简单,就是从 std::deque _data 中弹出一个队尾元素。只是由于队列可能为空,所以有一个阻塞式的条件变量来等待队列中有有效值(前三行)。
C++ 复制消除问题
hedzr
2021-08-29
阅读 3 分钟
1.5k
至于函数体中的 std::move(t) 也就是聊胜于无了,它并不会让 t 少掉 TMP 的复制,仅仅只是少掉了 t 到 _data 的一次复制而已。
谈 C++17 里的 Factory 模式
hedzr
2021-08-28
阅读 14 分钟
5.4k
本文不适合初学者,你应该已经对 Factory 模式有所了解,你对于 C++17 的常见特性也不陌生。Factory Pattern回顾下工厂模式,并考虑实现一个通用的工厂模板类以达成业务端低代码的目标。FROM: Refactoring Guru理论Factory 模式是 Creational Patterns 中的一种。创建型模式所谓的创建型模式,主要包含这几种:Abstract ...