
I read from Boost.Atomic documentation that supported platforms are:
- gcc 4.x: i386, x86_64, ppc32, ppc64, armv5, armv6, alpha
- Visual Studio Express 2008/Windows XP, i386
That seems a bit limited unless under "GCC" we have several compilers compatible with GCC and MSVC (maybe Intel, Clang, Freescale? etc.).
In case of gcc inline assembler is used, which is also supported by Intel but not clang. On Windows compiler intrinsics or WinAPI are used. I believe Intel supports MSVC intrinsics on Windows. I'm not sure what solution is suitable for clang as I don't know if it supports any intrinsics and apparently it won't support inline assembler any time soon.
it might be possible to get support for more platforms by supporting gcc(>=4.4)-style __sync builtins (iirc they are also supported by clang and intel) ... though clang seems to have an own set of atomic builtins (__c11_atomic_XXX) i'd very much appreciate if some platform experts would add support for their favorite platforms ... tim