std :: atomic для структурных битовых полей - PullRequest
0 голосов
/ 04 июня 2019

Я модифицирую существующую библиотеку с открытым исходным кодом, и есть структура (скажем, с именем 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

Может кто-нибудь посоветовать / иметь представление о том, как получить функциональность атомных полей с минимальным воздействием на существующий исходный код?

Заранее спасибо!

...