Чтобы использовать OSAtomicDecrement (атомарная операция для Mac), мне нужно предоставить SInt32, выровненный по 4 байтам.
Работает ли такая кулинария? Есть ли другой способ справиться с проблемами выравнивания?
struct SomeClass {
SomeClass() {
member_ = &storage_ + ((4 - (&storage_ % 4)) % 4);
*member_ = 0;
}
SInt32 *member_;
struct {
SInt32 a;
SInt32 b;
} storage_;
};