X

曜彤.手记

随记,关于互联网技术、产品与创业

吉 ICP 备10004938号

Recent Articles

ASM.js 标准草案分析(18 August 2014)

ASM.js 是 JavaScript 的严格子集,可作为编译器的一种低级、高效的目标语言。该子语言有效地描述了针对内存不安全语言(例如 C/C++。如:指针可能指向非法值、数组访问可能越界)的沙盒虚拟机。一种静态和动态验证相结合的方式使得 JavaScript 引擎可以针对有效的 ASM.js 代码采用 AOT 优化编译策略。

vtable 与 vptr

这个大众话题一直被放在 TODO 列表里,今天终于有时间来稍微写一下了。问题是之前有人在群里问能不能直接在 C/C++ 代码里访问类的 Virtual Table(后面简称 vtable),但事实情况是由于编译器的 ABI 不同,实际上对于 vtable 的具体结构和内存布局没有标准化的说明,因此不能按照想当然的方式来访问。本文我们来具体深入探究一下。

CRTP 与常见用例

CRTP 的全称为 “Curiously Recurring Template Pattern”,是一种 C++ 模板编程中的常用模式。其形式是将派生类作为基类的模板参数。从“类型理论”上来讲,这是一类 “F-bounded polymorphism”。

《C++17 STL Cookbook》读书笔记(四)

还是继续接上篇。

《C++17 STL Cookbook》读书笔记(三)

继续接上篇。

《C++17 STL Cookbook》读书笔记(二)

接上篇。

《C++17 STL Cookbook》读书笔记(一)

看到知乎上有人推荐的一本书。

老生常谈之:switch-case VS if-else

“在同等条件下,使用 switch-case 与 if-else 哪一个可以在 C++ 中生成质量更好、性能更高的目标代码呢?”这似乎是一个老生常谈的问题,今天我们就来深入研究一下。

《虚拟机系统与进程的通用平台》基础概述

这本书读起来比较学术,所以看心情挑着读读。(翻译质量奇差)

std::optional 与 Optional References

std::optional 是 C++17 中新添加的一个类模板,用来表示**一个值可能存在一种“不可用”的状态**。这类的场景需求很多,比如“搜索一个字符串中的所有字符,并返回其中出现的第一个数字值”。针对这个需求,我们可能获得多个不同的结果,但其中一个相对特殊的结果是“字符串中没有可返回的数字值”。那么这个时候,std::optional 就可以派上用场了。

See more? Please go to "Articles" page : )