https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89461
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- Oops, that should be: --- a/libstdc++-v3/include/experimental/io_context +++ b/libstdc++-v3/include/experimental/io_context @@ -134,7 +134,8 @@ inline namespace v1 io_context* _M_ctx; }; - using count_type = size_t; + using count_type + = conditional_t<ATOMIC_LONG_LOCK_FREE == 2, unsigned long, unsigned int>; // construct / copy / destroy: