But do we really need all of atomic_char, atomic_schar, atomic_uchar,
atomic_char8_t, atomic_int8_t, atomic_uint8_t, atomic_int_least8_t,
atomic_uint_least8_t, atomic_int_fast8_t, atomic_uint_fast8_t, and
atomic_bool?
And with C++20 we now also get atomic_signed_lock_free and
atomic_unsigned_lock_free which are "most efficient" (in an unspecified
way), and which may or may not be 8-bits wide.
Or could we manage with just a subset of 8-bit types? :-)
To be honest, I *can* see some advantage in that templated code could do
atomic<T> x;
++x;
and it just might work even for T being floating point. But that's about it.
Bo Persson