[#BloombergLP-bsls-AtomicOperations_ALL_ALL_ClangIntrinsics] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bsls.adoc[bsls]::AtomicOperations_ALL_ALL_ClangIntrinsics :relfileprefix: ../../ :mrdocs: Platform‐specific atomic operations using clang `__c11_atomic_*` intrinsics. == Synopsis Declared in `<bsls_atomicoperations_all_all_clangintrinsics.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct AtomicOperations_ALL_ALL_ClangIntrinsics : xref:BloombergLP/bsls/AtomicOperations_Default64-0b.adoc[AtomicOperations_Default64<AtomicOperations_ALL_ALL_ClangIntrinsics>] ---- == Base Classes [cols="1,4"] |=== | Name| Description | `xref:BloombergLP/bsls/AtomicOperations_Default64-0b.adoc[AtomicOperations_Default64<AtomicOperations_ALL_ALL_ClangIntrinsics>]` | This class provides default implementations of non‐essential atomic operations for the 32‐bit integer, 64‐bit integer, the 32‐bit unsigned integer, 64‐bit unsigned integer and 64‐bit pointer type for a generic 64‐bit platform. |=== == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/AtomicInt_SizeCheck.adoc[`AtomicInt_SizeCheck`] | compile‐time assert | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/AtomicTypes.adoc[`AtomicTypes`] | Alias for platform‐specific atomic integer, pointer, and Int64 types. |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/addInt64Nv.adoc[`addInt64Nv`] | Atomically add to the specified `atomicInt` the specified `value` and return the resulting value, providing the sequential consistency memory ordering guarantee. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/addInt64NvAcqRel.adoc[`addInt64NvAcqRel`] | Atomically add to the specified `atomicInt` the specified `value` and return the resulting value, providing the acquire/release memory ordering guarantee. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/addInt64NvRelaxed.adoc[`addInt64NvRelaxed`] | Atomically add to the specified `atomicInt` the specified `value` and return the resulting value, without providing any memory ordering guarantees. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/addIntNv.adoc[`addIntNv`] | Atomically add to the specified `atomicInt` the specified `value` and return the resulting value, providing the sequential consistency memory ordering guarantee. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/addIntNvAcqRel.adoc[`addIntNvAcqRel`] | Atomically add to the specified `atomicInt` the specified `value` and return the resulting value, providing the acquire/release memory ordering guarantee. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/addIntNvRelaxed.adoc[`addIntNvRelaxed`] | Atomically add to the specified `atomicInt` the specified `value` and return the resulting value, without providing any memory ordering guarantees. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/getInt.adoc[`getInt`] | Return the current value of the specified `atomicInt`. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/getInt64.adoc[`getInt64`] | Atomically retrieve the value of the specified `atomicInt`, providing the sequential consistency memory ordering guarantee. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/getInt64Acquire.adoc[`getInt64Acquire`] | Atomically retrieve the value of the specified `atomicInt`, providing the acquire memory ordering guarantee. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/getInt64Relaxed.adoc[`getInt64Relaxed`] | Atomically retrieve the value of the specified `atomicInt`, without providing any memory ordering guarantees. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/getIntAcquire.adoc[`getIntAcquire`] | Atomically retrieve the value of the specified `atomicInt`, providing the acquire memory ordering guarantee. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/getIntRelaxed.adoc[`getIntRelaxed`] | Atomically retrieve the value of the specified `atomicInt`, without providing any memory ordering guarantees. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/initInt.adoc[`initInt`] | Initialize the specified `atomicInt` to the specified `value`. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/initInt64.adoc[`initInt64`] | Initialize the specified `atomicInt` and set its value to the specified `value`. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/setInt.adoc[`setInt`] | Atomically set the value of the specified `atomicInt` to the specified `value`, providing the sequential consistency memory ordering guarantee. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/setInt64.adoc[`setInt64`] | Atomically set the value of the specified `atomicInt` to the specified `value`, providing the sequential consistency memory ordering guarantee. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/setInt64Relaxed.adoc[`setInt64Relaxed`] | Atomically set the value of the specified `atomicInt` to the specified `value`, without providing any memory ordering guarantees. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/setInt64Release.adoc[`setInt64Release`] | Atomically set the value of the specified `atomicInt` to the specified `value`, providing the release memory ordering guarantee. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/setIntRelaxed.adoc[`setIntRelaxed`] | Store the specified `value` into the specified `atomicInt` with relaxed memory ordering. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/setIntRelease.adoc[`setIntRelease`] | Atomically set the value of the specified `atomicInt` to the specified `value`, providing the release memory ordering guarantee. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/swapInt.adoc[`swapInt`] | Atomically set the value of the specified `atomicInt` to the specified `swapValue`, and return its previous value, providing the sequential consistency memory ordering guarantee. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/swapInt64.adoc[`swapInt64`] | Atomically set the value of the specified `atomicInt` to the specified `swapValue`, and return its previous value, providing the sequential consistency memory ordering guarantee. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/swapInt64AcqRel.adoc[`swapInt64AcqRel`] | Atomically set the value of the specified `atomicInt` to the specified `swapValue`, and return its previous value, providing the acquire/release memory ordering guarantee. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/swapIntAcqRel.adoc[`swapIntAcqRel`] | Atomically set the value of the specified `atomicInt` to the specified `swapValue`, and return its previous value, providing the acquire/release memory ordering guarantee. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/testAndSwapInt.adoc[`testAndSwapInt`] | Conditionally set the value of the specified `atomicInt` to the specified `swapValue` if and only if the value of `atomicInt` equals the value of the specified `compareValue`, and return the initial value of `atomicInt`, providing the sequential consistency memory ordering guarantee. The whole operation is performed atomically. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/testAndSwapInt64.adoc[`testAndSwapInt64`] | Conditionally set the value of the specified `atomicInt` to the specified `swapValue` if and only if the value of `atomicInt` equals the value of the specified `compareValue`, and return the initial value of `atomicInt`, providing the sequential consistency memory ordering guarantee. The whole operation is performed atomically. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/testAndSwapInt64AcqRel.adoc[`testAndSwapInt64AcqRel`] | Conditionally set the value of the specified `atomicInt` to the specified `swapValue` if and only if the value of `atomicInt` equals the value of the specified `compareValue`, and return the initial value of `atomicInt`, providing the acquire/release memory ordering guarantee. The whole operation is performed atomically. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics/testAndSwapIntAcqRel.adoc[`testAndSwapIntAcqRel`] | Conditionally set the value of the specified `atomicInt` to the specified `swapValue` if and only if the value of `atomicInt` equals the value of the specified `compareValue`, and return the initial value of `atomicInt`, providing the acquire/release memory ordering guarantee. The whole operation is performed atomically. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#