> Is this a defect in the current spec? Thanks!

Since C++17, std::atomic value-initializes its contained value, see:


Therefore it cannot be trivially-constructible. std::atomic<bool> is not
special in this regard.

Good catch. Verified via godbolt that `std::is_trivially_constructible_v<std::atomic<bool>>` is true in C++17 and false in C++20. So that defect only applies to C++17 and before.

Looks like the trivially-destructible part still applies in C++20.