Werkzeug文档笔记【一】

Werkzeug是一个Python WSGI接口标准的工具库。Flask就是基于Werkzeug的。 ...

July 20, 2020

Python的Asyncio

PEP492引入了native coroutine之后,增加了Python的书写异步代码的表达能力。Coroutine存在的意义之一是让异步代码看起跟同步代码类似,方便书写以及阅读。但是本质上,Coroutine和异步编程中的回调函数在功能上其实是一样的,需要某些触发条件才能被执行。 ...

July 19, 2020

C++追踪【二】飞船运算符

编译器在编译的时候其实是知道每个值的类型,有办法生成对于每个值的比较操作。尤其是对于整型值这些天然存在有次序的值,只要按照次序进行比较即可。...

June 28, 2020

C++追踪【一】类实例作为模板的非类型参数

C++的模板可以接受非类型参数,也就是接受一个值作为参数。但是能够接受的范围有限,基本上局限在具有内部链接属性的值,集中在整型值,比如各种整数,以及也为整型的指针值。 p0732r0也就是Class Types in Non-Type Template Parameters - Open-Std.oRg提倡让模板非类型参数可以接受类实例。这个特性已经进入C++20。 ...

June 23, 2020

JavaScript的任务处理

作为脚本语言,JavaScript基本上是单线程事件驱动的。在特殊场景下,JavaScript可以使用某个些Worker来启动多线程。可是由于JavaScript的线程同步原语十分缺乏,基本上是靠发消息。即便是多线程情况下,也是每个线程一个事件循环,看起来跟单线程差不了太多。 ...

March 7, 2020

C++20的模块系统

C++20标准引入了一个大家都比较期盼的慨念: Modules(模块)。模块的慨念在其他语言中,尤其是解释型语言中(比如Python、JavaScript)非常常见。可能是因为解释型语言实现Module比较容易,解释型语言有解释器,里面存着当前程序的整体符号列表,引入Module,无非是在这个符号列表中插入Module导出的符号。对于编译型语言,往往要经过链接的过程,合并符号表可能会变成一个很复杂的过程,因为符号表可以有不同的来源,有的是系统系统的,有的是应用提供的,有的是第三方库提供的。 ...

December 22, 2019

JavaScript的对象

JavaScript的对象是一堆部属(property)的集合,每个部属是一个从名字到值的映射。从形式上,这构成了一种关联数组的形态。对象的部属可以是是另一个对象,这就构成了对象的嵌套,从而能让JavaScript表示复杂的数据结构。此外,对象还有类型之分。最基本的对象类型是"object"。 ...

December 21, 2019

C++的标准库中chrono

C++11中引入<chrono>用于处理计时相关的操作。C++14和17中对其作了一些小的改进。在即将到来的C++20中chro...

September 18, 2019

介绍C++的SIFNAE

C++朝泛型也就是模板化编程的方向越走越远了。SFIANE应该是从C++模板中早就存在的一个概念,是Substitution Failure Is Not An Error的缩写。C++11之后对SFINAE的使用越发发扬光大了。对SFINAE简单的不那么准确的解释:如果几个模板共同定义一个类(或者函数),如果其中某些实例化失败,但是其他的有的能实例化成功的,那么实例化失败的模板就不能算错误。 ...

September 11, 2019

COM学习笔记(六)

...

September 8, 2019

COM学习笔记(五)

...

September 3, 2019

COM学习笔记(四)

...

September 2, 2019