typedef struct Atomic{ Type* atomic; Type* data; __code checkAndSet(Impl* atomic, Type* data, __code next(...)); __code next(...); } Atomic;