P99

◆ P99_REF_DISCOUNT

#define P99_REF_DISCOUNT (   REF,
  DELETE 
)
Value:
P99_MACRO_VAR(p00_ref, (REF)); \
register void (*const p00_d)(__typeof__(*p00_ref) const*) \
= (DELETE); \
/* ensure that the pointer is converted to the */ \
/* base type, and that the return can't be used as lvalue */ \
register __typeof__(*p00_ref)*const p00_r = p00_ref; \
if (p00_r && (atomic_fetch_sub_explicit(&p00_r->p99_cnt, 1, memory_order_acq_rel) == 1)) \
p00_d(p00_r); \
p00_r; \
})
void
void void
Definition: p99_bitset.h:84
p99_extension
#define p99_extension
Mark an expression as using a compiler extension.
Definition: p99_compiler.h:210