有没有办法以独立于平台的方式确定机器有多少来自C/C++的内核?如果不存在这样的事情,那么每个平台确定它(Windows/*nix/Mac)呢?
在我的问题有关std::thread,我建议使用std::thread::hardware_concurrency().我读到了某个地方(我找不到它,看起来像是一个本地的代码存储库),这个功能没有在4.8之前的g ++版本中实现.
事实上,我和这个用户处于同一个受害者的位置.该函数将返回0.我在此答案中找到了一个用户实现.欢迎评论这个答案是否合适!
所以我想在我的代码中执行此操作:
unsinged int cores_n;
#if g++ version < 4.8
cores_n = my_hardware_concurrency();
#else
cores_n = std::thread::hardware_concurrency();
#endif
Run Code Online (Sandbox Code Playgroud)
但是,我可以找到实现这一结果的方法.我该怎么办?