Я модифицирую существующую библиотеку с открытым исходным кодом, и есть структура (скажем, с именем Node), содержащая битовые поля, например,
struct Node {
std::atomic<uint32_t> size:30;
std::atomic<uint32_t> isnull:1;
};
Чтобы соответствовать моим потребностям, эти поля должны быть атомарными, поэтому я ожидал использовать std :: atomic для этого и столкнулся с ошибкой времени компиляции:
bit-field 'size' has non-integral type 'std::atomic<uint32_t>'
Согласно документации, существует ограниченный набор типов, которые можно использовать для std :: atomic
Может кто-нибудь посоветовать / иметь представление о том, как получить функциональность атомных полей с минимальным воздействием на существующий исходный код?
Заранее спасибо!