The History of constexpr in C++! (Part Two)

前情提要:The History of constexpr in C++! (Part One) 2015-2016:模板的语法糖 在 C++ 中支持 全特化 (full specialization) 的模板很多,但是支持 偏特化 (partial specialization) 的模板并不多,事实上其实只有类模板 (class template) 和变量模板 (variable template) 两种支持,而变量模板其实可以看做类模板的语法糖,四舍五入一下其实只有类模板支持偏特化。不支持偏特化会导致有些代码十分难写 ...

2024-02-22 · 更新于 2026-03-29 · 14 min · 6588 words · ykiko

The History of constexpr in C++! (Part One)

几个月前,我写了一篇介绍 C++ 模板的文章:雾里看花:真正意义上的理解 C++ 模板。 理清了现代 C++ 中模板的地位。其中用 constexpr function 替代模板进行编译期计算可以说是现代 C++ 最重要的改进之一了。 constexpr 本身其实并不难以理解,非常直观。但是由于几乎每个 C++ 版本都在改进它,所以不同的 C++ 版本可以使用的内容差别很大,有时候可能给人一种 inconsistency 的感觉。 ...

2024-02-10 · 更新于 2026-03-29 · 15 min · 7453 words · ykiko