Как с помощью атомарных флагов ограничить критическую область?
Возможно ли с помощью атомарных флагов написать аналог следующего кода?
std::mutex mtx;
size_t count = 0;
void func2(){
mtx.lock();
count++;
mtx.unlock();
};
Вопрос в том, возможно ли в с++ ограничить критическую область с помощью атомарных флагов, count в данном контексте - это абстрактный пример, прошу подразумевать, что это сложный тип, не поддерживаемый std::atomic.