并发C++ 11 - 可以使用哪些工具链?

Elo*_*off 8 c++ multithreading synchronization lock-free c++11

<thread> <atomic> <mutex>在代码中使用了很多,其中包括几个无锁算法.我的目标是(最终)一个linux环境.我一直在使用Visual Studio 2011 Beta开发,虽然在其他C++ 11功能中缺乏可怕性,但它似乎是实现并发功能的唯一工具链.

请参阅此处的c ++ 11支持:

现在如果其他人只是缺少一个包含c ++ 11并发功能的库,我可以很容易地使用just :: thread,但是clang和gcc都对c ++ 11内存模型回答"否",至少visual c ++似乎支持.我不确定这会产生什么影响 - 可能会优化掉明显无副作用的代码,以及其他错误的东西.

如果现在我完全避免优化构建并且只编译调试版本而不启用优化 - 使用Clang或GCC工具链是否合理?

Gun*_*iez 1

我已经在 64 位 Linux 和 Windows 上成功使用了 gcc-4.7。std::thread等等,即使使用 gcc-4.6,也可以在 Linux 上完美运行。
在 Windows 上,gcc-4.7 (mingw64) 有一些小问题,AFAIR 析构函数导致内存泄漏std::condition_variable