C ++ 11 — C ++, как сравнить atomic_ints?

Моя целевая система имеет g ++ 4.6.3, которая поддерживает C ++ 0x (но не C ++ 11). Я использую atomic_int для хранения переменной состояния, к которой я обращаюсь между двумя потоками. Однако, похоже, что для этого типа не определен оператор «Не равно». Как я могу сравнить atomic_ints?

0

Решение

Вы должны иметь возможность сравнивать их напрямую из-за atomic_intоператор преобразования. Если это не работает, то вам просто нужно найти обходной путь для конкретного компилятора. Возможно, если вы явно разыгрываете их или используете load() функция-член или atomic_load() не являющаяся членом функции это будет работать:

static_cast<int>(a) == static_cast<int>(b)

a.load() == b.load()

atomic_load(&a) == atomic_load(&b)

Вы должны заметить, что это не атомарное сравнение любого рода, поэтому убедитесь, что вы не пытаетесь делать то, что не следует делать с этим сравнением.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]