<p>I'd like to document what high-level (i.e. C++ not inline assembler ) functions or macros are available for Compare And Swap (CAS) atomic primitives... </p>

<p>E.g., WIN32 on x86 has a family of functions <code>_InterlockedCompareExchange</code> in the <code>&lt;_intrin.h&gt;</code> header.</p>

I'll let others list the various platform-specific APIs, but for future reference in C++09 you'll get the
```
```
atomic_compare_exchange()
```
```
operation in the new "Atomic operations library".