boost::condition_variable::timed_wait() attempts to invoke wait_duration.is_pos_infinity() on its templated parameter.
The standard doesn't define a member is_pos_infinity expected by timed_wait, forcing one to use a Boost clock rather than an STL one such as steady_clock or system_clock.
https://en.cppreference.com/w/cpp/chrono/duration
Found when compiling with MSVS 2022's STL (line 200 here):
https://github.com/microsoft/STL/blob/main/stl/inc/__msvc_chrono.hpp
A possible workaround would be to define an adapter class that defines this member.