Должен ли метод C ++ std :: future <T>быть названным is_ready () или ready ()? - PullRequest
1 голос
/ 19 октября 2019

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

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

Ответы [ 2 ]

0 голосов
/ 19 октября 2019

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

0 голосов
/ 19 октября 2019

<speculation>

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

</speculation>

...