C++ std::future 方法应该<T>命名为 is_ready() 还是 ready()?

Should C++ std::future<T> method be named is_ready() or ready()?

本文关键字:ready future std 还是 is 命名为 方法 lt C++ gt      更新时间:2023-10-16

为什么实验名称is_ready()被认为是对std::future的增强,而不是ready()更符合STL编码风格?Future 已经有一个名为valid()的方法,它也没有is_前缀。

有趣的是,N3721和N3865都包含这两个名称。

我怀疑这是因为已经存在的枚举常量std::future_status::ready.因此,is_ready()检查状态ready。尽管它们都位于不同的命名范围内,但我认为作者希望避免名称交集。

<speculation>

我怀疑is_ready()更清楚。 阅读代码时if (future.is_ready())几乎是英语,显然意味着is_readyconstif ( future.ready() )听起来可能意味着"future需要做好准备,然后返回"或"future已经准备好了"。

</speculation>