Я не могу найти документацию, в которой говорится, что исключение гарантирует (нет, базовое, сильное, nothrow) предложение gcc atomic buildins (например, __sync_synchronize ()). Кто-нибудь может предоставить подробности об этом?
Поскольку их можно использовать в C, который не имеет исключений, ни один из них не сгенерирует.