std :: condition_variable впервые проверяет условие, или вам нужно подождать, пока кто-нибудь сделает уведомление?
На это отвечает чтение документации .
Это как:
while (!pred()) { wait(lock); }
Итак, условие проверено сначала .
Это также можно показать, протестировав его (хотя, если честно, из этого трудно понять, являются ли результаты детерминированными c).