为什么 std::expected 中没有 monadic 操作?

Why are there no monadic operations in std::expected?

在 C++23 中,采用了 std::optional 中的单子操作,后来采用了 std::expected。为什么像 and_thentransformor_else 这样的单子运算没有包含在主要论文中?

std::expected 提议很旧。采用的修订版是 P0323R12,这已经表明它的使用寿命很长,但该论文甚至早于 P-numbering 系统,并且开始于 N4015,日期为 2014 年 5 月。

我提出这个问题是因为 std::expected,即使是它自己,也需要很长时间才能完成整个过程。相比之下,std::optional 论文的单子操作仅在 October 2017 中首次出现。从那以后,获得 std::expected 只是一个漫长的过程。

一篇论文,提出 std::expected 的单子操作,即 P2505R0,但目前还很不完整,需要大量工作。新 C++23 功能的设计 window 已经关闭,但如果以后有 NB 评论要求它,我也不会感到惊讶。

至少我们终于有了std::expected