consider I have two atomic booleans as follows.

```
private:
    std::atomic_bool x;
    std::atomic_bool y;

```

Can I say the following operation is atomic? or do I have to use `lock_guard` to to make sure they are assigned together?

```
x = y = true; // are two bools assigned together atomically?

```

also consider in another thread I want to read these booleans.

```
if(!x && !y) ...

```

my assumption is that this is not atomic, maybe its better to use `atomic<int>` instead?