9 Statements [stmt.stmt]

9.5 Iteration statements [stmt.iter]

9.5.2 The do statement [stmt.do]

Выражение есть contextually converted to bool; если это преобразование сформировано неверно, значит, неверно сформирована программа.

В do операторе подзапрос выполняется многократно, пока значение выражения не станет равным false. Проверка проводится после каждого выполнения инструкции.