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

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

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

有趣的是 N3721 and N3865 都包含两个名字。

<speculation>

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

</speculation>

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