# std::atomic_flag_clear, std::atomic_flag_clear_explicit

From cppreference.com
< cpp‎ | atomic

Defined in header `<atomic>` |  |
| (1) | (since C++11)
void atomic_flag_clear( volatile std::atomic_flag * p ) noexcept; |  |
void atomic_flag_clear( std::atomic_flag * p ) noexcept; |  |
| (2) | (since C++11)
void atomic_flag_clear_explicit( volatile std::atomic_flag * p, std::memory_order order ) noexcept; |  |
void atomic_flag_clear_explicit( std::atomic_flag * p, std::memory_order order ) noexcept; |  |

Atomically changes the state of a std::atomic_flag pointed to by `p` to clear (false).

### Parameters

p | - | pointer to std::atomic_flag to access
order | - | the memory synchronization ordering for this operation: only std::memory_order_relaxed, std::memory_order_release, or std::memory_order_seq_cst are permitted.

### Return value

none.

### Possible implementation

First version

    void atomic_flag_clear(volatile std::atomic_flag* p)
    {
        p->clear();
    }

Second version

    void atomic_flag_clear(std::atomic_flag* p)
    {
        p->clear();
    }

Third version

    void atomic_flag_clear_explicit(volatile std::atomic_flag* p,
                                    std::memory_order order)
    {
        p->clear(order);
    }

Fourth version

    void atomic_flag_clear_explicit(std::atomic_flag* p,
                                    std::memory_order order)
    {
        p->clear(order);
    }

### See also

atomic_flag (C++11) | the lock-free boolean atomic type (class)
atomic_flag_test_and_setatomic_flag_test_and_set_explicit (C++11)(C++11) | atomically sets the flag to true and returns its previous value (function)
memory_order (C++11) | defines memory ordering constraints for the given atomic operation (enum)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/atomic/atomic_flag_clear&oldid=93057"