提问人:Desmond Gold 提问时间:2/9/2022 更新时间:1/27/2023 访问量:1077
为什么 std::expected 中没有单子运算?
Why are there no monadic operations in std::expected?
问:
在 C++23 中,采用了 中的一元运算,后来又采用了 .为什么像 、 这样的一元运算没有包含在正文中?std::optional
std::expected
and_then
transform
or_else
答:
5赞
Barry
2/9/2022
#1
更新:在 C++23 中将有 monadic 操作。std::expected
这个提议很老了。采用的修订版是P0323R12,这已经表明它的寿命很长,但该论文甚至早于 P 编号系统,并以 N4015 开始,日期为 2014 年 5 月。std::expected
我之所以提出这个问题,是因为即使就其本身而言,也花了很长时间才能完成整个过程。相比之下,纸张的单子运算仅在 2017 年 10 月首次出现。从那时起,就要走很长一段路。std::expected
std::optional
std::expected
有一篇论文提出了 的一元运算,这是P2505R0,但在这一点上它非常不完整,需要大量的工作。C++ 新特性的设计窗口已关闭,但如果以后有 NB 注释要求它,我不会感到惊讶。std::expected
至少我们终于有了.std::expected
几个月后来到这里,有一条 NB 评论要求 monadic 运算符于 2022 年 11 月在科纳为 C++23 采用P2505R5。std::expected
评论
1赞
Nicol Bolas
9/26/2022
就其价值而言,P2505 似乎正在走上 C++23 的轨道。至少,LWG似乎愿意考虑将其用于C++23。
0赞
Ben
1/27/2023
看起来没有.这似乎是可取的。还是处理好了?.transform_error
.or_else
1赞
Barry
1/27/2023
@Ben 有一个现在。就像我说的,那篇论文的R0非常不完整。transform_error
评论
expected