---
name: "std::atomic"
section: "3"
platform: "linux"
package: "gcc"
version: "16.2.1+r23+gd564253eb6c8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/std::atomic"
---

# std::atomic(3)

Generic atomic type, primary class template.

## NAME

std::atomic\< \_Tp \> - Generic atomic type, primary class template.

## SYNOPSIS

\#include \<atomic\>

### Public Types

using **value\_type**\

### Public Member Functions

constexpr **atomic** (\_Tp \_\_i) noexcept\
 **atomic** (const atomic &)=delete\
 bool **compare\_exchange\_strong** (\_Tp &\_\_e, \_Tp \_\_i, **memory\_order** \_\_m=memory\_order\_seq\_cst) noexcept\
 bool **compare\_exchange\_strong** (\_Tp &\_\_e, \_Tp \_\_i, **memory\_order** \_\_m=memory\_order\_seq\_cst) volatile noexcept\
 bool **compare\_exchange\_strong** (\_Tp &\_\_e, \_Tp \_\_i, **memory\_order** \_\_s, **memory\_order** \_\_f) noexcept\
 bool **compare\_exchange\_strong** (\_Tp &\_\_e, \_Tp \_\_i, **memory\_order** \_\_s, **memory\_order** \_\_f) volatile noexcept\
 bool **compare\_exchange\_weak** (\_Tp &\_\_e, \_Tp \_\_i, **memory\_order** \_\_m=memory\_order\_seq\_cst) noexcept\
 bool **compare\_exchange\_weak** (\_Tp &\_\_e, \_Tp \_\_i, **memory\_order** \_\_m=memory\_order\_seq\_cst) volatile noexcept\
 bool **compare\_exchange\_weak** (\_Tp &\_\_e, \_Tp \_\_i, **memory\_order** \_\_s, **memory\_order** \_\_f) noexcept\
 bool **compare\_exchange\_weak** (\_Tp &\_\_e, \_Tp \_\_i, **memory\_order** \_\_s, **memory\_order** \_\_f) volatile noexcept\
 \_Tp **exchange** (\_Tp \_\_i, **memory\_order** \_\_m=memory\_order\_seq\_cst) noexcept\
 \_Tp **exchange** (\_Tp \_\_i, **memory\_order** \_\_m=memory\_order\_seq\_cst) volatile noexcept\
 bool **is\_lock\_free** () const noexcept\
 bool **is\_lock\_free** () const volatile noexcept\
 \_Tp **load** (**memory\_order** \_\_m=memory\_order\_seq\_cst) const noexcept\
 \_Tp **load** (**memory\_order** \_\_m=memory\_order\_seq\_cst) const volatile noexcept\
 **operator \_Tp** () const noexcept\
 **operator \_Tp** () const volatile noexcept\
 \_Tp **operator=** (\_Tp \_\_i) noexcept\
 \_Tp **operator=** (\_Tp \_\_i) volatile noexcept\
 atomic & **operator=** (const atomic &) volatile =delete\
 atomic & **operator=** (const atomic &)=delete\
 void **store** (\_Tp \_\_i, **memory\_order** \_\_m=memory\_order\_seq\_cst) noexcept\
 void **store** (\_Tp \_\_i, **memory\_order** \_\_m=memory\_order\_seq\_cst) volatile noexcept\

## Detailed Description

### template\<typename \_Tp\>

struct std::atomic\< \_Tp \>"Generic atomic type, primary class template.

**Template Parameters**

*\_Tp* Type to be made atomic, must be trivially copyable.

## Author

Generated automatically by Doxygen for libstdc++ from the source code.
