Follow feeds: blogs, news, RSS and more. An effortless way to read and digest content of your choice.
Get Feederblog.quarticcat.com
Get the latest updates from QuarticCat's Blog directly as they happen.
Follow now 13 followers
Last updated 10 months ago
10 months ago
I’ve seen people complaining about some gigantic C/C++/Rust projects engulfing all of...
about 1 year ago
Built-in undo & redo No need to explain. They work as their...
over 2 years ago
Difftastic is a structural diff that understands syntax. The diff results it...
almost 3 years ago
引言 我用 Zsh 到现在大约三年了,从抛弃 Oh My Zsh 自行配置开始也有大约两年了,零零散散积攒了不少我觉得值得分享的东西,因此有了这篇 blog 。另外,考虑到我的朋友大多对 Zsh 的使用比较轻度,写...
about 3 years ago
引言 RISC-V 作为一个新兴的 ISA ,从前辈的错误中吸取了很多教训,同时提出了一些非常有吸引力的设计,被我的很多朋友喜爱。RISC-V 在我所接触的圈子里经常是“现代”与“优雅”的代名词,而它的向量扩展(RVV)也常常被冠以同等的荣耀,尽管几乎没人摸过有 RVV 的实机,也很少有人真的使用 RVV 进行编程过——这是当然的,毕竟 RVV Intrinsic...
over 3 years ago
太久没更新博文了,水一篇凑数 从 String View 说起 C 风格的字符串常常需要自己记录长度、管理生命周期,涉及长度变化时更是比较麻烦。于是在 C++ 中我们有了std::string,并且有了与之配套的一系列函数,比如std::stoi,对应 C 里面的atoi。这个函数的声明如下: 1...
almost 4 years ago
众所周知,C++ 的名称查找一直以来都很反直觉。比如这个 ADL ,其恶心程度在 C++ 的各种 feature 里绝对排得上号。 这玩意经常在意想不到的地方恶心到你,还往往难以排查。具体表现为你在当前的命名空间里自己定义了一个函数,结果在调用它的时候编译器却找到了十万八千里外的另一个同名函数,而你明明没有在当前命名空间引入该函数。这种情况甚至不会有一个提示。假如是不知道这个 feature 的 C++...
almost 4 years ago
As we all know that C++’s name lookup has always been extremely...
about 4 years ago
引言 C++ 作为一门没有直接在语言层面支持 tagged union 的 OOP 语言,在进行诸如操作 AST 一类的处理时常常会采用访问者模式。我大一时写的一个弱智解释器中也是如此。很可惜当时在编程水平和 deadline 的双重限制下没能好好研究,时隔近一年,我对访问者模式也有了更多的理解,打算讲讲这个设计模式的问题和...
about 4 years ago
又到了我第 114514 喜欢的类型体操环节。这篇文章不当正经人了,想到啥写啥。 这玩意有什么用 非要举一个具有实用意义的场景的话,PEGTL 是我能想到的一个很好的例子。这是一个 parser combinator 库,它使用类型来组合 parser ,比如这样: 1...
about 4 years ago
引言 尽管标准库中已经有了typeid运算符,但是由于其需要支持检查多态类型,带来了非常多的限制: 它必须启用 RTTI(Run-Time Type Information)。而很多项目是禁用 RTTI 的,所以无法使用typeid。 它可能对表达式进行求值,详见 cppreference 。这可能带来意外的运行时开销甚至副作用,尤其是常用的sizeof和decltype都是完全静态的,不熟悉typeid的程序员可能完全意识不到这种动态行为的产生。 它不是constexpr的,即使其类型本可以静态求出。这意味着很多场景都无法使用...