
- C++ Library - Home
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- The C++ STL Library
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- The C++ Advanced Library
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ Library -
The
The
Including Header
To include the
#include
Functions of Header
Below is list of all functions from
Path Manipulation Functions
This path manipulation functions operate on file paths to compose, convert or resolve them.
S.No | Functions & Description |
---|---|
1 |
atomic_is_lock_free
This function checks if the atomic type's operations are lock-free. |
2 |
atomic_store, atomic_store_explicit
These functions atomically replaces the value of the atomic object with a non-atomic argument. |
3 |
atomic_exchange, atomic_exchange_explicit
These functions atomically replaces the value of the atomic object with non-atomic argument and returns the old value of the atomic. |
4 |
atomic_fetch_add, atomic_fetch_add_explicit
These functions adds a non-atomic value to an atomic object and obtains the previous value of the atomic. |
5 |
atomic_fetch_sub, atomic_fetch_sub_explicit
These functions replaces the atomic object with the result of bitwise AND with a non-atomic argument and obtains the previous value of the atomic. |
6 |
atomic_fetch_or, atomic_fetch_or_explict
These functions replaces the atomic object with the result of bitwise OR with a non-atomic argument and obtains the previous value of the atomic. |
7 |
atomic_fetch_xor, atomic_fetch_xor_explict
These functions replaces the atomic object with the result of bitwise XOR with a non-atomic argument and obtains the previous value of the atomic. |
8 |
atomic_flag_test_and_set, atomic_flag_test_and_set_explicit
These functions atomically sets the value of the flag to false. |
9 |
atomic_thread_fence
This function provides generic memory order-dependent fence synchronization primitive. |
10 |
atomic_signal_fence
This function fence between a thread and a signal handler executed in the same thread. |
Checking if Operations are Lock-Free
In the below example we are going to use, atomic_is_lock_free to check if atomic operations on a specific atomic type are lock-free.
#include#include int main() { std::atomic atomicInt; bool isLockFree = atomic_is_lock_free(&atomicInt); std::cout << "Is atomic operation lock-free? " << std::boolalpha << isLockFree << std::endl; return 0; }
Output
If we run the above code it will generate the following output
Is atomic operation lock-free? true