Следует ли называть метод C++ std::future <T> is_ready () или ready()?

Почему экспериментальное название is_ready() рассматривается как улучшениеstd::future и нет ready()что больше соответствует стилю кодирования STL? В Future уже есть метод под названиемvalid() который также не имеет is_ префикс.

Интересно, что и N3721, и N3865 содержат оба имени.

2 ответа

Решение

Я подозреваю, что это из-за уже существующей константы перечисления std::future_status::ready. Такis_ready() проверяет статус ready. Хотя оба они относятся к разным областям именования, я предполагаю, что авторы хотят избежать пересечения имен.

<speculation>

Я подозреваю is_ready()яснее. При чтении кодаif (future.is_ready()) почти звучит по-английски и очевидно означает, что is_ready является const. if ( future.ready() ) звучит так, как будто это могло означать "future нужно подготовиться, затем вернуться "или"future уже готов ".

</speculation>

Другие вопросы по тегам