gpt4 book ai didi

c++ - experimental::optional "nullopt_t"命名原理

转载 作者:搜寻专家 更新时间:2023-10-31 00:56:04 26 4
gpt4 key购买 nike

boost::optional C++ 库具有由boost::none 指示的“无值”,这是一个精心选择的名称,如代码

f(..., optional<T> default_argument = boost::none)

f(..., optional<T> default_argument = none)

可读性强——意图清楚地传达给了读者。它也类似于其他语言的标准类中提供的“无值”。这个 Boost 库作为 std::experimental::optional 被吸收到标准中,但是 none 被重命名为难以理解的 nullopt_t。有谁知道为什么吗?

最佳答案

有趣的是,事实证明它更容易标准化 boost::optional比标准化boost::none . boost::none , 而它的目的是初始化 boost::optional s,它没有明确定义的语义。

void 的良好表现值语义替代方案很有用,但需要回答很多问题。它应该有 operator<并成为有序类型?它应该与 nullptr 相互转换吗? ?与nullptr相当?我不想让这些问题阻碍 boost::optional 的通过。 ,所以我们达成了妥协。现在,使用 nullopt其唯一目的是初始化 optional对象。加个乖none之后。确实是关于“知府”的作品none正在处理。 See here .

关于c++ - experimental::optional "nullopt_t"命名原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40388229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com