Use std::thread::hardware_concurrency instead of get_nprocs