2013-11-26 21 views

Odpowiedz

8

ATOMIC_FLAG_INIT to makro zdefiniowane w ramach implementacji, które gwarantuje działanie w wyrażeniach takich jak ten, który zostały opublikowane. Przydaje się do zainicjowania atomic_flag, którą możesz zdefiniować na przykład w obszarze nazw. Gwarantuje również, że flaga zostanie wyczyszczona, a jeśli sama flaga ma czas przechowywania statycznego, inicjalizacja będzie również statyczna.

Drugi zestaw instrukcji to inicjalizacja, po której następuje wyczyszczenie flagi. Ponieważ stan atomic_flag jest nieokreśloną konstrukcją domyślną, oznacza to, że flaga znajduje się w stanie nieokreślonym do czasu wykonania clear().

5

Tak (za 29.7[atomics.flag] §4):

Makro ATOMIC_FLAG_INIT zostaną określone w taki sposób, że może on być używany do inicjalizacji obiektu typu atomic_flag do jasnego stanu. W przypadku obiektu o czasie statycznym inicjalizacja musi być statyczna. Nie jest określone, czy niezainicjowany obiekt ma początkowy stan ustawiony lub czysty.

Powiązane problemy