C++ compatibility with C11 atomics

C++ compatibility of default C11 atomics types. More...

Detailed Description

C++ compatibility of default C11 atomics types.

This module provides opaque typedefs for each standard C11 atomic type with the same size and alignment requirements. The contents of types are not accessible to C++ code, but this allows structs to be defined with the same memory layout as the C version, so that they can be allocated from C++.

Files

file  c11_atomics_compat.hpp
 C++ compatibility of default C11 atomics types.
 

Data Structures

struct  atomic_bool
 Type with the same alignment and size as atomic_bool More...
 
struct  atomic_char
 Type with the same alignment and size as atomic_char More...
 
struct  atomic_schar
 Type with the same alignment and size as atomic_schar More...
 
struct  atomic_uchar
 Type with the same alignment and size as atomic_uchar More...
 
struct  atomic_short
 Type with the same alignment and size as atomic_short More...
 
struct  atomic_ushort
 Type with the same alignment and size as atomic_ushort More...
 
struct  atomic_int
 Type with the same alignment and size as atomic_int More...
 
struct  atomic_uint
 Type with the same alignment and size as atomic_uint More...
 
struct  atomic_long
 Type with the same alignment and size as atomic_long More...
 
struct  atomic_ulong
 Type with the same alignment and size as atomic_ulong More...
 
struct  atomic_llong
 Type with the same alignment and size as atomic_llong More...
 
struct  atomic_ullong
 Type with the same alignment and size as atomic_ullong More...
 
struct  atomic_int_least8_t
 Type with the same alignment and size as atomic_int_least8_t More...
 
struct  atomic_uint_least8_t
 Type with the same alignment and size as atomic_uint_least8_t More...
 
struct  atomic_int_least16_t
 Type with the same alignment and size as atomic_int_least16_t More...
 
struct  atomic_uint_least16_t
 Type with the same alignment and size as atomic_uint_least16_t More...
 
struct  atomic_int_least32_t
 Type with the same alignment and size as atomic_int_least32_t More...
 
struct  atomic_uint_least32_t
 Type with the same alignment and size as atomic_uint_least32_t More...
 
struct  atomic_int_least64_t
 Type with the same alignment and size as atomic_int_least64_t More...
 
struct  atomic_uint_least64_t
 Type with the same alignment and size as atomic_uint_least64_t More...
 
struct  atomic_int_fast8_t
 Type with the same alignment and size as atomic_int_fast8_t More...
 
struct  atomic_uint_fast8_t
 Type with the same alignment and size as atomic_uint_fast8_t More...
 
struct  atomic_int_fast16_t
 Type with the same alignment and size as atomic_int_fast16_t More...
 
struct  atomic_uint_fast16_t
 Type with the same alignment and size as atomic_uint_fast16_t More...
 
struct  atomic_int_fast32_t
 Type with the same alignment and size as atomic_int_fast32_t More...
 
struct  atomic_uint_fast32_t
 Type with the same alignment and size as atomic_uint_fast32_t More...
 
struct  atomic_int_fast64_t
 Type with the same alignment and size as atomic_int_fast64_t More...
 
struct  atomic_uint_fast64_t
 Type with the same alignment and size as atomic_uint_fast64_t More...
 
struct  atomic_intptr_t
 Type with the same alignment and size as atomic_intptr_t More...
 
struct  atomic_uintptr_t
 Type with the same alignment and size as atomic_uintptr_t More...
 
struct  atomic_size_t
 Type with the same alignment and size as atomic_size_t More...
 
struct  atomic_intmax_t
 Type with the same alignment and size as atomic_intmax_t More...
 
struct  atomic_uintmax_t
 Type with the same alignment and size as atomic_uintmax_t More...
 

Macros

#define ATOMIC_VAR_INIT(x)   { x }
 Initialize an atomic variable. More...
 

Macro Definition Documentation

◆ ATOMIC_VAR_INIT

#define ATOMIC_VAR_INIT (   x)    { x }

Initialize an atomic variable.

Usage (same syntax as the real C11 atomic initializer):

Definition at line 39 of file c11_atomics_compat.hpp.